Java进阶--面向对象_接口、接口和抽象类的区别

接口:

1.接口是引用数据类型

2.接口是完全抽象的。(抽象类是半抽象),或者说接口是特殊的抽象类

3.接口定义语法[修饰符列表] interface 接口名{ }

4.接口支持多继承,一个接口可以继承多个接口

5.接口中只有常量抽象方法

6.接口中的方法都是抽象方法,所以接口中的方法不能有方法体

7.接口中所有元素都是public修饰的

8.接口中的抽象方法定义时,public abstract可以省略

9.接口中的常量定义时,public static final可以省略


类实现接口

1.语法class 类名 implements 接口名{ 类体 }

2.非抽象类实现接口的话,必须将接口中所有的抽象方法全部实现(覆盖、重写)

3.重写方法时必须定义为public,因为重写方法的时候方法的权限不能比重写前更低

4.接口和类也可以实现多态,调用其他接口中的方法需要接口转型

5.一个类可以同时实现多个接口,要重写所有接口中的所有方法


继承和实现都存在

  • 继承写在前,实现写在后

接口在开发中的作用

1.接口在开发中的作用,类似于多态在开发中的作用

  • 多态:面向对象编程,不要面向具体编程,降低程序耦合度,提高程序的扩展力
  • 接口:面向接口编程,可以降低程序的耦合度提高程序的扩展性,符合OCP开发原则

2.接口可以解耦和,解的是调用者和实现者的耦合。调用者面向接口调用,实现者面向接口编写实现


抽象类和接口的区别(语法上)

抽象 构造方法 继承 实现 内容 使用频率
抽象类 半抽象 类和类之间只能单继承 一个抽象类只能继承一个类 有构造方法
接口 完全抽象 没有 接口之间可以多继承 一个类可以同时实现多个接口 只有常量和抽象方法

类型和类型之间的关系

1.is a

  • Cat is an Animal
  • 满足is a的表示“继承关系”

2.has a

  • I have a Pen
  • 满足has a关系的表示关联关系
  • 关联关系通常以“属性”的形式存在

3.like a

  • Cooker like a FoodMenu
  • 满足like a的表示“实现关系”
  • 实现关系通常是:类实现接口

你可能感兴趣的:(Java,#,JavaSE,java,多态,接口)