抽象类实现接口
- 普通类来实现接口
普通类来实现接口,这个普通类就必须实现接口中所有的方法,
结果就是普通类中就需要实现多余的方法,造成代码冗余。
- 抽象类来实现接口
抽象类来实现接口,那么就可以只实现接口中的部分方法,
并且当其他类继承这个抽象类时,仍然可以实现接口中有但抽象类并未实现的方法。
interface A{
public void a();
public void b();
public void c();
}
abstract class B implements A{
public void a(){}
public void b(){}
}
class C extends B{
public void a(){}
public void b(){}
public void c(){}
}
public class Test1{
public static void main(String[] args) {
}
}
如果抽象类B中的方法实例化后,子类C就可以只实现方法c即可
抽象方法
- 如果一个类包含抽象方法,那么该类必须是抽象类。
- 任何子类必须重写父类的抽象方法,或者声明自身为抽象类。
小结
- 抽象类不能被实例化
- 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
- 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。