了解 Java 中抽象类的用途
2022-09-04 05:40:18
假设我有两个类,A和B。A类被定义为抽象类,而B扩展了这个抽象类,最后我测试结果,两个类都是同一包的一部分。
public abstract class A {
protected abstract void method1();
protected void method2() {
System.out.println("This is Class A's method");
}
}
public class B extends A {
@Override
protected void method1() {
System.out.println("This is B's implementaiton of A's method");
}
}
现在当我测试它们时:
B b = new B();
b.method1();
b.method2();
我得到预期的输出:
This is B's implementaiton of A's method
This is Class A's method
问题:
- 关键字的目的是什么,因为如果我省略它,它仍然工作相同。
@Override
- 如果我不实现抽象方法,我会收到编译错误。那么,这与实现接口有什么区别呢?
- 另外,我也可以在B中实现。然后,输出将更改为 B 中的用法。这不也是重写父类方法吗?那么,在类 A 中显式定义一个抽象的方法的目的是什么呢?
method2()