Java由浅入深通关抽象类与接口(上篇)


Posted in Java/Android onApril 26, 2022

1.抽象类

1.1抽象类概念

我们都知道对象是通过类来进行描述的,但是不是说所有的类都是用来描述对象的

一个类的类中没有足够的信息来描述一个具体的对象,这便是抽象类

抽象类的关键字:abstract

1.2抽象方法

首先还是看看之前写过的类:

class Plant {
    String name;
    String source;
    String genus;
    public void trait() {
        System.out.println("父类方法");
    }
}
class Tree extends Plant {
    @Override
    public void trait() {
        System.out.println("子类方法");
    }
}

既然trait方法是重写的方法,那么父类的trait根本就没有实现的必要,所以我们可以将其改成抽象方法

注意:抽象类可以没有抽象方法,但抽象方法必须在抽象类里面

abstract class Plant {
    String name;
    String source;
    String genus;
    public abstract void trait();
}
class Tree extends Plant {
    @Override
    public void trait() {
        System.out.println("子类方法");
    }
}

Java由浅入深通关抽象类与接口(上篇)

 1.3抽象类的细节

1.抽象类是用于被继承的,所以无法实例化,除这点外它和普通的类没有区别

2.抽象类里面可以没有抽象方法,但抽象方法一定要在抽象类中

3.一个普通类继承抽象类,要重写抽象类里面所有的抽象方法

4.抽象类可以继承抽象类,此时不需要重写抽象方法

5.final无法修饰抽象类和抽象方法

6.抽象方法不能使用private和static修饰

可能会有人觉得奇怪:普通类也可以作为父类被继承,为什么还要再弄一个抽象类出来?

我们不妨假设一个场景:你在实例化对象的时候实例化了父类对象,如下:

public static void main(String[] args) {
        Plant tree=new Plant();
        tree.trait();
    }

如果父类是普通类的话,此时编译器不会报错,直接调用父类的方法

如果父类是抽象类,因为抽象类无法被实例化,所以编译器会直接报错,这样问题就能更早被发现

2.接口

2.1接口概念

所谓接口就是公共的行为规范准则,比如说A4纸,A4纸的大小是210mm*297mm,那么你就只能按照这个规格来进行生产

在Java中接口就可以看成是多个类的公共规范,是一种引用类型数据

接口关键字:interface

2.2接口的细节

接口同样有一些需要注意的事项:

1.接口也是用来被其它类实现的,同样不能实例化

2.接口里面的方法只能是抽象方法,默认是public static修饰

3.接口的成员变量默认是静态常量,所以必须初始化

4.接口被实现所使用的关键字为implements,类实现接口依旧要重写接口中所有的抽象方法

5.接口不能有构造方法和静态代码块

6.接口继承接口使用extends

7.创建接口时,接口的命名一般以大写的字母“I”开头(建议,非硬性要求)

8.接口也可以实现多态

接口在Java中最主要的作用就是实现多继承

Java中一个类只能继承一个父类,但它可以实现多个接口

抽象类和接口有相似的地方,不过二者之间最本质的区别就是抽象类可以有普通成员方法和普通成员变量,而接口中的方法只能是抽象方法

抽象类和接口介绍完毕,下一篇会介绍Java中一些比较重要的接口

到此这篇关于Java由浅入深通关抽象类与接口上的文章就介绍到这了!

Java/Android 相关文章推荐
分析设计模式之模板方法Java实现
Jun 23 Java/Android
如何解决springcloud feign 首次调用100%失败的问题
Jun 23 Java/Android
使用@Value值注入及配置文件组件扫描
Jul 09 Java/Android
Java反应式框架Reactor中的Mono和Flux
Jul 25 Java/Android
聊聊SpringBoot自动装配的魔力
Nov 17 Java/Android
详解Spring Security中的HttpBasic登录验证模式
Mar 17 Java/Android
Java 写一个简单的图书管理系统
Apr 26 Java/Android
java版 简单三子棋游戏
May 04 Java/Android
Android 中的类文件和类加载器详情
Jun 05 Java/Android
Java实现简单小画板
Jun 10 Java/Android
java实现自定义时钟并实现走时功能
Jun 21 Java/Android
前端与RabbitMQ实时消息推送未读消息小红点实现示例
Jul 23 Java/Android
Mybatis-Plus 使用 @TableField 自动填充日期
Apr 26 #Java/Android
Java 写一个简单的图书管理系统
Apr 26 #Java/Android
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
Apr 24 #Java/Android
Spring Boot 使用 Spring-Retry 进行重试框架
Apr 24 #Java/Android
Android在Sqlite3中的应用及多线程使用数据库的建议
Apr 24 #Java/Android
Android开发 使用文件储存的方式保存QQ密码
Apr 24 #Java/Android
IDEA 2022 Translation 未知错误 翻译文档失败
You might like
laravel config文件配置全局变量的例子
2019/10/13 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
javascript 简练的几个函数
2009/08/29 Javascript
js中关于new Object时传参的一些细节分析
2011/03/13 Javascript
jquery滚动加载数据的方法
2015/03/09 Javascript
JS+CSS实现类似QQ好友及黑名单效果的树型菜单
2015/09/22 Javascript
js实现的鼠标滚轮滚动切换页面效果(类似360默认页面滚动切换效果)
2016/01/27 Javascript
使用jQuery中的wrap()函数操作HTML元素的教程
2016/05/24 Javascript
JS获取url参数、主域名的方法实例分析
2016/08/03 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
js微信扫描二维码登录网站技术原理
2016/12/01 Javascript
详解js产生对象的3种基本方式(工厂模式,构造函数模式,原型模式)
2017/01/09 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
AngularJS实现tab选项卡的方法详解
2017/07/05 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
2018/09/03 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
Python标准库之循环器(itertools)介绍
2014/11/25 Python
python使用正则表达式分析网页中的图片并进行替换的方法
2015/03/26 Python
Python实现导出数据生成excel报表的方法示例
2017/07/12 Python
python itchat实现微信好友头像拼接图的示例代码
2017/08/14 Python
在交互式环境中执行Python程序过程详解
2019/07/12 Python
Ubuntu+python将nii图像保存成png格式
2019/07/18 Python
python logging模块书写日志以及日志分割详解
2019/07/22 Python
Python读取csv文件实例解析
2019/12/30 Python
Pytorch中的VGG实现修改最后一层FC
2020/01/15 Python
jupyter notebook 的工作空间设置操作
2020/04/20 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
Python如何将函数值赋给变量
2020/04/28 Python
Under Armour瑞典官方网站:美国高端运动科技品牌
2018/11/21 全球购物
Fabletics官网:美国运动服饰品牌,由好莱坞女演员凯特·哈德森创立
2019/10/19 全球购物
送货司机岗位职责
2013/12/11 职场文书
财务人员求职自荐书范文
2014/02/10 职场文书
人民调解员培训方案
2014/06/05 职场文书
无私奉献演讲稿
2014/09/04 职场文书
报到证办理个人委托书
2014/10/06 职场文书
初中语文教学研修日志
2015/11/13 职场文书