Java では、子クラス内の親クラスの抽象メソッドに本体を渡し、次のように子クラス オブジェクトを介してその関数を呼び出します。
//let the abstract function be fun then,
child c= new child();
c.fun();
次にfun
、によって指定された本体を実行しchild
ますが、関数のオーバーライドで行われるのと同じように、これには何が新しいのですか?
Java では、子クラス内の親クラスの抽象メソッドに本体を渡し、次のように子クラス オブジェクトを介してその関数を呼び出します。
//let the abstract function be fun then,
child c= new child();
c.fun();
次にfun
、によって指定された本体を実行しchild
ますが、関数のオーバーライドで行われるのと同じように、これには何が新しいのですか?
違いは、抽象化されないサブクラスは、継承されたすべての抽象メソッドを実装する必要があることです。super.method()
また、抽象クラスには実装がないため、具体的な実装を呼び出すことはできません。
インターフェースではなく抽象スーパークラスを選択する理由について、またはより明確に説明すると、多くの場合、インターフェースの一部のメソッドのみの実装を提供すると便利です。インターフェイスの他の部分。
抽象化とは、開発者がメソッドを (明示的に) 実装する必要があることを意味します。オーバーライドとは、開発者が既に実装されているメソッドを実装することを意味します。これは言語の定義によるものです。