抽象クラスの目的は、開発者が基本クラスのオブジェクトを作成してからアップキャストできないようにすることではありません。
さて、アップキャストが必要なくても、私はまだそれを使用していますが、それは何らかの形で「不利」であることが証明されていますか?
より明確にする:
C ++での思考から:
多くの場合、設計では、基本クラスがその派生クラスのインターフェイスのみを提示するようにします。つまり、誰もが実際に基底クラスのオブジェクトを作成するのではなく、そのインターフェイスを使用できるようにアップキャストするだけです。これは、そのクラスを抽象化することで実現されます。
アップキャストとは、次のことを意味します。baseClass *obj = new derived ();