标签:直接 构造器 不能 初始化 col 创建 接口 span java
抽象类:
使用abstract关键字修饰的类为抽象类,其内部可以有类的一切成员,还可以有abstract修饰的抽象方法(不一定有),抽象方法只有方法的声明,没有方法体,有抽象方法的类必须声明为抽象类。
抽象类不能够创建对象(为什么?反证法:假设创建了抽象类的对象,使用其对象调用抽象方法,而方法没有方法体,没有意义),但其必须是有构造器的,是提供给其子类创建对象时,初始化父类成员使用的。
抽象类的子类必须实现父类的抽象方法,如果不实现,也必须将子类定义为抽象方法。
抽象类存在的意义:为了被子类继承,体现的是模板思想。(抽象类中实现的是模板中确定的成员,不确定如何实现的交给子类实现)。
抽象类的构造器不能为私有,否则子类无法访问,无意义。
接口:
jdk1.8之前接口中只能有抽象方法(public abstract忽略不写)和共享常量(public static final忽略不写)。
jdk1.8开始之后接口中还可以有默认方法(用default修饰,只能用接口的实现类的对象来调用)、静态方法(用static修饰,只能用本接口名直接调用)、私有方法(jdk1.9开始才有的,用private修饰,只能用接口中其它私有方法和默认方法调用)。
两者区别:
标签:直接 构造器 不能 初始化 col 创建 接口 span java
原文地址:https://www.cnblogs.com/superyucong/p/12629037.html