抽象方法、抽象类、接口的总结

抽象方法:

  • 只声明未实现的方法
  • 必须abstract关键字声明(接口中的抽象方法可以省略abstract关键字,默认是抽象方法)

抽象类:

  • 抽象类,用来表示抽象的概念.
  • 是一种只能定义类型,而不能产生对象的类,所以定义了抽象类则必须有子类的出现.
  • 抽象类的好处在于能够明确地定义子类需要覆盖的方法.
  • 抽象类需要使用abstract声明.
  • 抽象类里可以实现抽象方法,该方法特征在于:只有声明,并没有方法体.
  • 抽象类中可以有属性、普通方法、抽象方法(num>=0).
  • 子类继承父类,必须重写全部的父类抽象方法,除非这个类也变成了抽象类.
  • 抽象类可以存在构造方法,用来初始化抽象类的属性。
  • 抽象类不能使用final定义。

抽象类与抽象方法的关系:

抽象类可以没有抽象方法,但是如果你的一个类已经声明成了抽象类,即使这个类中没有抽象方法,它也不能再实例化,即不能直接构造一个该类的对象。
如果一个类中有了一个抽象方法,那么这个类必须声明为抽象类,否则编译通不过。

接口(通常interface来声明)

  • 接口是一种抽象类型,但并不是一个抽象类,是抽象方法的集合
  • 接口没有构造方法,不能用于实例化对象。
  • 接口中所有方法都必须是抽象的。(1.8之后允许接口定义非抽象方法)
  • 接口中方法定义默认为public abstract类型,成员变量默认为public static final 类型。(如果省略,系统会默认补全)。
  • 实现类可以使用implements实现接口,而且可以实现多个接口,但实现类只能extends继承一个类。

猜你喜欢

转载自blog.csdn.net/chpllp/article/details/107532009