接口、抽象类和类之间的关系
来源:互联网 发布:windows php 定时任务 编辑:程序博客网 时间:2024/06/07 03:57
仅能继承单个父类;可以实现多个接口。这是Java实现其多态性的重要手段,也涵盖了接口、抽象类和类之间的关系
基本特性
1.接口
接口的属性有字段和方法组成,没有构造函数的原因:接口是用来被子类继承实现多态性的,是不能被实例化的
1. 属性:仅能被public、static、final修饰,不能被private、protected、volatle、transient、strictfp和synchronized修饰
2. 在方法的定义上JDK1.7和JDK1.8有了很大的区别
- JDK1.7:接口中的方法必须全部为抽象方法,此时的接口可以看成特殊的抽象类
接口中抽象方法的定义:
//和抽象类中抽象方法允许public和protected修饰不同,接口中的抽象方法仅允许public修饰//protected对于子女、朋友来说,就是public的,可以自由使用,没有任何限制,而对于其他的外部//class,protected就变成private,不符合接口开放设计原则public abstract void method();
- JDK1.8:相比较与JDK1.7有了两点最大的改变(全部基于可以定义代码实现的方法)
可以定义多个静态非抽象的方法
//修饰符同样只需要publicpublic static void method(){ //do something}
可以定义多个默认方法
//必须default关键字进行修饰public default void method(){ //do something}
Tip:JDK1.8,接口的方法必须全部是public修饰的,static、abstract、default修饰专门的方法,不能混合使用
2.类
类的属性由字段、方法、构造函数、代码块和静态代码块组成
1. 字段
public static final String field = "this is field property";
2. 方法
public void method(){ //do something}
3. 构造函数
public Constructor(){ //do something}
4.代码块,定义在类内部,方法外;实例被创建的时候,代码被执行
{ //do something}
5.静态代码块,定义在类内部,方法外;类被加载的时候,代码被执行
static{ //do something}
3.抽象类
抽象类的属性主要由字段、方法、构造函数、代码块和静态代码块组成。
抽象类的属性大致和类的定义规则是一样的,除了方法,抽象类的方法允许定义抽象方法(没有代码实现的方法)
//abstract关键字是定义抽象类和定义抽象方法的标识//抽象方法只允许用可见的修饰符public和protected修饰public abstract void method();
关系
1.接口和类
- 类可实现多个接口
2.接口和抽象类
- 抽象类也可使实现多个接口
- 抽象类最大的好处就是可以实现多个接口,但不必实现全部的接口方法,在做模块化设计的时候很有用
3.抽象类和类
- 类只能继承一个抽象类,类只能继承一个抽象类
- 比较特殊的是超类Object,Java中所有的类都继承与此类,我们可以重写(@Override)Object的方法
4.接口和接口
- 接口可以继承多个接口,用逗号隔开,接口实现类必须实现所有接口的方法
- 从另外一个角度解决了类的单继承的问题
Tip:各个阶段的理解可能不一样,后续会更改和补充
- 接口和抽象类之间的关系
- 抽象类和接口之间的关系
- 浅谈类、抽象类、接口和继承之间的关系
- 类,抽象类,接口和继承之间的关系
- 类、抽象类、接口和继承之间的关系
- 接口、抽象类和类之间的关系
- 抽象类与接口之间的继承和实现关系
- 类、抽象类、接口之间的关系
- 类、抽象类、接口之间的关系
- 抽象类与接口之间的关系
- 抽象类与接口之间的关系
- java抽象类和接口和继承之间关系
- java抽象类和接口和继承之间关系
- java抽象类和接口和继承之间关系
- Java抽象类和接口和继承之间关系
- Java抽象类和接口和继承之间关系
- java抽象类、接口和继承之间关系
- java中抽象类和接口之间的区别和关系
- 剑指offer 之 字符串的全排列、全组合
- 【重装系统】Ubuntu系统重装为windows10
- leetcode-461. Hamming Distance
- 命令行
- 安卓自定义View基础06-View的onMeasure(),onDraw()方法详解以及Padding的处理
- 接口、抽象类和类之间的关系
- mysql5.7新特性解析
- ubuntu WPS 提示“系统缺失字体symbol、wingdings、wingdings 2、wingdings 3、webding”的解决方法
- JS的事件处理程序
- javascript面试考点
- js实现带缩略图的图片转换
- HDU 2864 Repository(字典树)
- CTF实验吧 这就是一个坑wp (明文攻击)
- POJ 1050 To the Max(最大字矩阵)【模板】