考虑这个示例代码,我首先使用普通类来实现泛化概念,然后使用子类来专门化:
package check;
class figure{
void area(){
System.out.println("\n Superclass for any figure"); //An useless print statement
}
}
class triangle extends figure{
void area()
{
System.out.println("\n Code to determine area of a triangle");
}
}
对于使用抽象类的相同实现,代码将是:
abstract class figure1{
abstract void area();
}
class triangle1 extends figure1{
void area()
{
System.out.println("\n Code to determine area of a triangle");
}
}
现在阅读我的 JAVA 教科书(Herbert Schildt,完整参考,第 7 版),在我看来,作者想要传达的是,在泛化-专业化方法的情况下,以某种方式使用抽象类会更好。但是,我不明白它比使用普通课程更好。使用抽象类本质上强制我们扩展基类,仅此而已;除此之外,我看不到实施中有任何巨大差异。那么任何人都可以让我理解使用抽象类是比使用普通类更好的实践/方法吗?