抽象方法
规则1
如果一个类包含抽象方法,那么该类必须是抽象类
规则2
任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
抽象类
规则1
抽象类不能被实例化,如果被实例化,就会报错,编译无法通过。
只有抽象类的非抽象子类可以创建对象。
规则2
抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
规则3
构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。
规则4
抽象类中含有参构造函数的时候,子类需在第一句调用抽象类构造函数。
abstract class A {
private int a;
public A(int a) {
System.out.println("A类的构造函数");
this.a = a;
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
}
class B extends A{
private int b;
public B(int a, int b) {
System.out.println("B类构造函数");
// super(a);
this.b = b;
}
}
访问控制符回顾
final回顾
super回顾
接口
一个接口实例
修饰符final
修饰符abstract
修饰符 public
修饰符protected
修饰符private
接口中的字段
接口和抽象类比较
jdk8 接口新特性
默认方法
引入的目的: 为了解决接口的修改与现有的实现不兼容的问题。
接口可以有实现方法,而且不需要实现类去实现其方法。只需在方法名前面加个default关键字即可