疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

浅谈继承体系和接口体系的区别


 

   

  1:final关键字

  (1)是最终的意思,可以修饰类,方法,变量。

  (2)特点:

  A:它修饰的类,不能被继承。

  B:它修饰的方法,不能被重写。

  C:它修饰的变量,是一个常量。

  @特别注意:修饰引用类型 时,地址值不能发生改变,但是对象的内容是可以改变的

  2:多态

  (1)同一个对象在不同时刻体现出来的不同状态。

  @例如:Person pe=new Student();

  Person pe2=new Teacher();

  (2)多态的前提:

  A:有继承或者实现关系。

  B:有方法重写,没有就没意义了。

  C:有父类或者父接口引用指向子类对象person s=new student();。

  (3)多态中的成员访问特点

  @ 因为只有成员方法有重写,所以只有成员方法运行的时候看new的对象(右边)

  (4)多态的好处:

  A:提高代码的维护性(继承体现)

  B:提高代码的扩展性(多态体现)

  现象:

  子可以当作父使用,父不能当作子使用。

  3:抽象类(abstract)

  没有具体的方法体的方法是抽象的方法,定义的抽象方法就是给它的子类去重写的。

  在一个类中如果有抽象方法,该类必须定义为抽象类。

  (1)抽象类的特点

  A:抽象类和抽象方法必须用关键字abstract修饰

  B:抽象类中不一定有抽象方法,但是有抽象方法的类一定是抽象类

  C:抽象类不能实例化

  D:抽象类的子类

  a:是一个抽象类。

  b:是一个具体类。这个类必须重写抽象类中的所有抽象方法。

  (2)抽象类的几个小问题

  A:抽象类有构造方法,不能实例化,那么构造方法有什么用?

  用于子类访问父类数据的初始化

  B:一个类如果没有抽象方法,却定义为了抽象类,有什么用?

  为了不让创建对象

  C:abstract不能和哪些关键字共存

  a:final 冲突

  b:private 冲突

  c:static 无意义

  4:接口

  (1)接口的特点:

  A:接口用关键字interface修饰

  interface 接口名 {}

  B:类实现接口用implements修饰

  class 类名 implements 接口名 {}

  C:接口不能实例化

  D:接口的实现类

  a:是一个抽象类。

  b:是一个具体类,这个类必须重写接口中的所有抽象方法。

  (2)接口的成员特点:

  A:成员变量

  只能是常量

  默认修饰符:public static final

  没有构造方法,成员方法 只能是抽象的

  默认修饰符:public abstract

  @ 类与接口的 实现关系,可以单实现,也可以多实现。

  还可以在继承一个类的同时,实现多个接口

  @ 接口与接口的 继承关系,可以单继承,也可以多继承

  @接口实现相对于继承来说的区别就在于,实现接口相当于获得额外的功能,而继承就相当于获得本该有的功能