質問 1: 通常のクラスと抽象クラスの違いは何ですか?
抽象クラス不能被实例化
;抽象クラスは,
を持つことができます;抽象メソッドを持つクラスは抽象クラスです;抽象クラスのサブクラスは、抽象クラス内のすべての抽象メソッドを実装する必要があります。それ以外の場合、サブクラスは依然として抽象クラスです。抽象メソッドは実装できません変更されました。抽象方法
只需申明,无须实现
一定
不能声明为静态
static、final
質問 2: インターフェイスと抽象クラスの違いは何ですか?
(1) インターフェース
インターフェイスはinterface
変更を使用します。
インターフェイス不能实例化
は、クラスがインターフェイス
を実装できます。多个
①java8以前では、インターフェース内のメソッドはすべて抽象メソッドであり、省略されていましたpublic abstract
。②java8以降; 静的メソッドはインターフェース内で定義できるようになり、静态方法必须有方法体
通常のメソッドはメソッド本体がなく実装する必要があります。
(2) 抽象クラス
抽象クラスはabstract
変更を使用します;
抽象クラス不能被实例化
;
抽象クラスはのみ可能です单继承
;
抽象クラスは抽象メソッドと非抽象メソッドを含めることができます非抽象方法需要有方法体
;
クラスが抽象クラスを継承する場合、 ① すべての抽象メソッドが実装されている場合、サブクラスは抽象クラスではない可能性があります; ②もし没有实现所有的抽象方法
、子类仍然是抽象类
。