1

抽象类

抽象方法的概念

抽象方法主要指不能具体实现的方法, 并且使用abstract关键字修饰, 就也就没有方法体

具体格式如下: 访问权限 abstract 返回值类型 方法名(形参列表);
public abstract void cry();

抽象类的概念

抽象类主要指不能具体实例化的类并且使用abstract关键字修饰, 也就是不能创建对象

抽象类和抽象方法的关系

  • 抽象类中可以有成员变量, 构造方法, 成员方法
  • 抽象类中可以没有抽象方法, 也可以有抽象方法
  • 拥有抽象方法的类必须是抽象类. 因此真正意义上的抽象类应该是具有抽象方法并且使用abstract关键字修饰的类

抽象类的实际意义

  • 抽象类的实际意义不在于创建对象而在于被继承
  • 当一个类继承抽象类后必须重写抽象方法, 否则该类也变成抽象类. 也就是抽象类对子类具有强制性和规范性. 因此叫做模板设计模式

开发经验分享

  • 在以后的开发中推荐使用多态的格式. 此时父类类型引用直接调用的所有方法一定是父类中拥有的方法. 若以后更换子类时, 只需要将new关键字后面的子类类型修改而其它地方无需改变就可以立即生效. 从而提高了代码的可维护性和可扩展性
  • 该方式的缺点就是: 父类引用不能直接调用子类独有的方法, 若调用则需要强制类型转换

接口

接口的概念

  • 接口就是一种比抽象类还抽象的类, 体现在所有方法都为抽象方法
  • 定义类的关键字是class, 定义接口的关键字是interface

类和接口之间的关系

image.png

抽象类和接口的主要区别

  • 定义抽象类的关键字是abstract class, 而定义接口的关键字是interface
  • 继承抽象类的关键字是extends, 而实现接口的关键字是implements
  • 继承抽象类支持单继承, 而实现接口支持实现
  • 抽象类中可以有构造方法, 而接口中不可以有构造方法
  • 抽象类中可以有成员变量, 而接口中只可以有常量
  • 抽象类中可以有成员方法, 而接口中只可以有抽象方法
  • 抽象类中增加方法时子类可以不用重写 , 而接口中增加方法时实现类需要重写(Java8以前的版本)
  • 从Java8开始增加新特性, 接口中允许出现非抽象方法和静态方法, 但非抽象方法需要使用default关键字修饰
  • 从Java9开始增加新特性, 接口中允许出现私有方法

chain_xx_wdm
64 声望2 粉丝

1.领养代替买卖