抽象类和接口

tech2022-08-29  103

抽象类: 在方法前加上 abstract 关键字, 表示这是一个抽象方法. 同时抽象方法没有方法体(没有 { }, 不能执行具体 代码). 对于包含抽象方法的类, 必须加上 abstract 关键字表示这是一个抽象类. 注意事项

抽象类不能直接实例化抽象方法不能是 private 的抽象类中可以包含其他的非抽象方法, 也可以包含字段. 这个非抽象方法和普通方法的规则都是一样的, 可以被重写,也可以被子类直接调用

抽象类的作用: 抽象类存在的最大意义就是为了被继承. 抽象类本身不能被实例化, 要想使用, 只能创建该抽象类的子类. 然后让子类重写抽象类中的抽象方法. 接口: 接口是抽象类的更进一步. 抽象类中还可以包含非抽象方法, 和字段. 而接口中包含的方法都是抽象方法, 字段只能包含 静态常量. 使用 interface 定义一个接口 接口中的方法一定是抽象方法, 因此可以省略 abstract 接口中的方法一定是 public, 因此可以省略 public 在调用的时候同样可以创建一个接口的引用, 对应到一个子类的实例. 接口不能单独被实例化 接口中只能包含抽象方法. 对于字段来说, 接口中只能包含静态常量(final static)

区别 核心区别: 抽象类中可以包含普通方法和普通字段, 这样的普通方法和字段可以被子类直接使用(不必重写), 而接口中不能包含普通方法,子类必须重写所有的抽象方法 结构组成:抽象类是普通类+抽象方法,接口是抽象方法+全局变量 权限:抽象类(各种权限),接口(public) 子类使用:抽象类使用extends关键字继承抽象类,接口不能继承抽象类,但是接口可以使用extends关键字继承多个父接口 子类限制:抽象类一个子类只能继承一个抽象类,接口一个子类可以实现多个接口

最新回复(0)