抽象类
抽象类-接口关系示意图
如果一个类实现接口,就要把接口中所有的抽象方法都重写。
A接口继承另一个B接口时,类要重写AB两个接口的方法
如果只是实现部分接口,可以用抽象类实现。
抽象类与接口不同点:
一 接口中的方法都是抽象方法,而抽象类的方法既可以有抽象方法,也可以有实现的方法。
二 抽象类有构造方法,而接口中没有。
三 抽象类是类,继承这个类的类的实例也是抽象类的实例,而实现接口的类的实例只是具有接口声明功能。
四 类只能单一继承,但是可以实现多个接口。
五 抽象类与实现类之间存在is a 的关系,而接口与实现类之间不存在此特征。
抽象类与接口相同点: 接口和抽象类都不能被new实例化
final(最终的不可变的)修饰符
一 修饰变量,该变量就变成常量。
二 修饰方法,该方法不能被子类重写。
三 修饰类,该类不能被继承。
四 修饰对象引用名后,只能指向原来的对象。
接口中的属性 int x = 100; 等同于
public static final int x = 100;
匿名内嵌类:没有类名的类,编译也会生成字节码文件,new Name(){重写方法},既可以实现接口也可以继承抽象类和普通类
代码样例
天长地久。
天地所以能长且久者,以其不自生,故能长生。
是以圣人后其身而身先,外其身而身存。
非以其无私邪?
故能成其私。
————《道德经》第七章