Day10
抽象类abstract
一个抽象的概念,只是用来继承的,最好的情况下,只需要声明,只用来继承和重写。
抽象方法必须在抽象类中。抽象类不能被实例化。
抽象类中不能定义 抽象静态方法,
如果不想重写父类抽象方法,子类也必须定义抽象类
存在构造函数
一个抽象类实现了接口,可以不强制实现方法,但是抽象类的子类必须实现方法,同样地,在抽象类里面实现了方法,抽象类的子类就不用强制实现方法了。
接口
[访问权限修饰符] interface [接口名]{
}
接口不是类,和类是一个平等的数据关系。一个类继承接口,称之为实现接口。
class 类名 implements
接口要用抽象方法
接口和实现接口的子类不是is-a的关系,他们是可以做XX的关系。
使用接口要先实现接口。
这个类也可以称之为接口的子类,能发生类型转换。
一个类可以实现多个接口。
接口默认是abstract的,不需要再加abstract了。
接口的成员特征
定义成员变量
int a ;//会报错,必须初始化
//通过构造方法
{
a=10;
}
//也会报错
/*
默认是 public static final 修饰
*/
//直接这么写
int a = 10;
//普通全局常量可以用static代码块赋值。但接口的不行
成员方法
接口中的方法默认都是public abstract,定义不了普通方法。
了解的知识点:在java8以后,引入了接口默认方法和静态方法。
默认方法的语法:default 返回值类型 方法名(){}
静态方法的语法:static 返回值类型 方法名(){} 可通过接口名.访问。不能通过实现类调用。
接口之间不是实现,可以继承。
abstract 父子类重写,
引用数据类型: 返回值类型可以改变成继承链上的。 可以返回他的子类。
接口,普通类同上
学习记录,并不保证内容的准确性。
浙公网安备 33010602011771号