最初に通常のクラスを使用して一般化された概念を実装し、次にサブクラスを使用して特殊化したこのサンプル コードを検討してください。
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 版) を読んでいると、一般化と専門化のアプローチの場合、何らかの方法で抽象クラスを使用する方が優れていることを筆者が伝えたいと考えているように見えました。しかし、通常のクラスを使用するよりも優れていることを理解できませんでした。抽象クラスを使用すると、基本的に基本クラスを拡張する必要があり、それだけです。それ以外は、実装に大きな違いは見られません。では、抽象クラスを使用することが、通常のクラスを使用するよりも優れたプラクティス/アプローチであることを理解してもらえますか?