抽象类:
A:使用abstract 关键字修饰
B:抽象类不一定有抽象方法,但有抽象方法的类,一定是抽象类
C:抽象类不能实例化
D:抽象类的子类要么是抽象类,要么必须重写抽象类中的抽象方法
抽象成员特点:
A:成员变量:可以是常量也可以是变量
B:构造方法,有构造方法
C:成员方法:可以是抽象的,也可以是非抽象的
抽象类的问题:
A:抽象类中有构造方法,不能实例化,作用是给子类访问父类进行数据初始化
B:一个类没有抽象方法,却被定义为抽象类,作用:不让创建对象
C:abstrat 不能与final、static、private共存
接口:
A:使用关键字interface修饰;
B:类实现接口使用implement关键字
C:接口不能实例化
D:接口的实现类,要么是抽象类,要么必须重写接口中所有抽象方法
接口成员特点:
A:成员变量:只有静态常量,public static final修饰
B:没有构造方法
C:成员方法:只有抽象成员方法 public abstract 修饰
类与类,类与接口,接口与接口
A:类与类
继承关系,单继承,多层继承
B:类与接口
实现关系,可单实现,也可多实现,
还可以继承类后同时实现多个接口
C:接口与接口
继承关系,可单继承,也可多继承
抽象类和接口的区别
A:成员区别:
抽象类:成员变量可是变量,也可是常量
成员方法可是抽象方法,也可是非抽象方法
接口: 成员变量是静态常量
成员方法必须是抽象方法
C:设计理念:
抽象类: is a 定义的是共性
接口: like a 定义的是扩展性