跳到主要内容

java 面向对象——抽象类与接口

· 阅读需 1 分钟

抽象类

抽象类只是比普通类多了一些抽象方法而已,抽象方法没有方法体。

abstract class Person{
public abstract void walk();
}

注意:

  • 抽象类不能直接实例化(new Person()是错误的),只能通过子类实例化
  • 抽象类也包含构造方法(子类调用父类构造方法)
  • 抽象类也可以包含普通方法

接口

接口是抽象类的更一步抽象,接口中所有的方法都是抽象方法

interface Person{
public void walk();
public void eat();
}

注意:

  • 接口不能被实例化
  • 接口没有构造方法
  • 接口中的方法必须是抽象方法(jdk1.8后可以有default方法)
  • 接口中的常量必须是public static final

抽象类与接口的区别

抽象类接口
成员变量无特殊要求必须是public static final
构造方法
方法可以有抽象方法也可以有普通方法只能是抽象方法(jdk1.8后可以有default)
继承只能单继承可以多实现
成员可以有普通成员只能是常量