java 继承与多态之抽象类和接口
2017-10-31 15:40
309 查看
抽象类:用 abstract 声明的类
1、抽象类不能生成对象,其子类可以生成对象,但必须重写抽象父类的抽象方法
2、如果一个类中含有抽象方法,那么该类必须声明为抽象类
3、如果一个类中没有抽象方法,该类也可以声明为抽象类
4、抽象的构造方法可以在子类中被调用
接口:使用 interface 定义
1、接口中的方法都是抽象的,其实现类必须要重写所有的方法
2、接口中所有的方法都是 public 权限的
3、接口中的变量默认都是 final 型,并且是静态的
4、实现接口用 implement
5、接口没有构造方法
抽象类和接口的区别:
1、成员区别
抽象类:
成员变量:可以为变量,也可以为常量
构造方法:有,但不可以实例化
成员方法:既可以为抽象,也可以为非抽象
接口:
成员变量:静态常量
构造方法:无
成员方法:只能是抽象
2、关系区别
类与类:单继承,即一个类只能继承一个类
类与接口:多实现,即一个类可以实现多个接口
接口与接口:多继承,即一个接口可以继承多个接口
3、设计理念
抽象类被继承体现的是“is a”关系,抽象类中定义的是该继承体系的共性功能
接口被实现体现的是“like a”关系,接口定义的是该继承体系的扩展功能
1、抽象类不能生成对象,其子类可以生成对象,但必须重写抽象父类的抽象方法
2、如果一个类中含有抽象方法,那么该类必须声明为抽象类
3、如果一个类中没有抽象方法,该类也可以声明为抽象类
4、抽象的构造方法可以在子类中被调用
public abstract class AbstractClass { private int num1; //普通变量 private final int num2; //常量 public AbstractClass() { //构造函数 } public void method1() { //普通方法1 } public void method2() { //普通方法2 } .............. public abstract void abstractMethod1(); //抽象方法1 public abstract void abstractMethod2(); //抽象方法2 .............. }
接口:使用 interface 定义
1、接口中的方法都是抽象的,其实现类必须要重写所有的方法
2、接口中所有的方法都是 public 权限的
3、接口中的变量默认都是 final 型,并且是静态的
4、实现接口用 implement
5、接口没有构造方法
public abstract class AbstractClass { private int num1; //普通变量 private final int num2; //常量 public AbstractClass() { //构造函数 } public void method1() { //普通方法1 } public void method2() { //普通方法2 } .............. public abstract void abstractMethod1(); //抽象方法1 public abstract void abstractMethod2(); //抽象方法2 .............. }
抽象类和接口的区别:
1、成员区别
抽象类:
成员变量:可以为变量,也可以为常量
构造方法:有,但不可以实例化
成员方法:既可以为抽象,也可以为非抽象
接口:
成员变量:静态常量
构造方法:无
成员方法:只能是抽象
2、关系区别
类与类:单继承,即一个类只能继承一个类
类与接口:多实现,即一个类可以实现多个接口
接口与接口:多继承,即一个接口可以继承多个接口
3、设计理念
抽象类被继承体现的是“is a”关系,抽象类中定义的是该继承体系的共性功能
接口被实现体现的是“like a”关系,接口定义的是该继承体系的扩展功能
相关文章推荐
- JAVA中几个易混淆关键词的理解:行为,隐藏,组合和继承,覆写和重载,多形(多态)性,动态绑定,上溯造型,抽象类,接口
- java的若干问题(1)——继承、多态、抽象类与接口
- Java基础笔记-继承、抽象类、接口、多态、内部类、异常
- 黑马程序员——【Java基础】——面向对象(一)概述、类与对象、继承、抽象类、接口、多态、内部类
- JAVA中几个易混淆关键词的理解:行为,隐藏,组合和继承,覆写和重载,多形(多态)性,动态绑定,上溯造型,抽象类,接口
- JAVA-6-继承、super、final、多态、抽象类、接口
- Java类、属性、方法、对象、继承、多态、接口、抽象类...
- java [继承]-[接口]-[抽象类]-[多态]-[Object]
- Java第4次实验提纲(面向对象2-继承、多态、抽象类与接口与Swing)
- [Java] 继承,隐藏,覆盖,重载,多态,抽象类,接口
- All About JAVA 继承、多态、抽象类、接口、面向接口编程
- 黑马程序员——Java基础---面向对象(继承、多态、抽象类、接口、内部类)
- JAVA基础知识点(六)--接口,多态,继承,抽象类,重载的问题
- 关于JAVA继承、多态、抽象类、接口等性质的学习(3)
- java 继承和多态 抽象类和接口
- 黑马程序员-17-java基础-面向对象(3)-继承、抽象类、接口与多态
- java学习(6)-继承,多态,抽象类以及接口
- java 中什么时候用抽象类,什么时候用 接口(面向对象的继承与多态)
- java 继承 方法重写 自动转型 多态 接口 抽象类
- 关于JAVA继承、多态、抽象类、接口等性质的学习(2)