abstact(非常に特定の具体的な実装は唯一の概念ではありません)----抽象的
に変更することができますどのような1
修飾法を
abstract修飾子修正方法を使用して、実行メソッド本体の方法の構造は、抽象メソッドと呼ばれているだけでなく
、修正ネイティブに注意を払うのはもちろんの方法をそこには、プロセスメソッド本体ではありませんが、それは単に実行の抽象メソッドが表示されていない他の言語で書かれているではありませんが
変更されたクラス
抽象クラスと呼ばれているabstract修飾子修正クラスで
唯一の単一継承サブクラスによって物事を行うには、直接物事を行うことができない抽象クラスを
2。クラスとの間の関係
の抽象クラスは---- ----直接、単一の抽象クラスを継承することができます
(使用率が通常は表示されません)抽象クラス継承---- ----直接単一の特定のクラスの
具象クラスを----直接単一継承----ない抽象クラス(抽象親クラスまたはコンクリートのサブクラスは抽象クラスとなっている
3つの小さな問題
抽象メソッドなしに抽象クラスでは、すべての特定のメンバーであることができる
抽象クラスにすることはできませんいいえ、特定のメンバーは、すべての抽象メソッドがある--->極度の質的な変化に抽象抽象クラス---->インタフェース
インタフェースは、極端に抽象クラスの抽象として理解することができます--->まだクラスまたは構造体ではなく、スイッチインターフェイスで変性された変性クラス
何(通常ルールを定義するために)インタフェースである
インタフェースはクラス構造もされるが、変更インタフェースで元のクラス置き換えるために
メンバーは何1
のみ静的定数のpublic static final含めることができ、一般市民の属性を含めることはできません属性
の方法は含めることはできませんが唯一のパブリック抽象メソッド(1.8 defualt特定の修飾法)を含む一般的な手順
静的ブロックを含むことができないブロックの船を含むことができないブロック(それ自体をブロックは、特定のインタフェースの特定のメンバーにはない)
コンストラクタはないコンストラクタ含む
2。どのオブジェクトを作成する
オブジェクトを作成できませんで
のみ動作するように複数のサブクラス(実装)を介して達成することができる
器具のB、C、D {}パブリッククラスAを
他のクラスとの3構造的関係
最も抽象的な他の継承できるインターフェイス
抽象クラス- -直接マルチ----インターフェースが実装することができる
具体的なクラスを---- ----複数のインタフェースを直接(抽象メソッドを具現しなければならないか、インタフェース変換コンクリートクラスは抽象クラスである)ではないかもしれ実装
* ---インタフェース-多重継承は直接以上を達成するためにインタフェースすることができ-------
例1:動物の音シミュレータ
package java期末测试题第八题;
public interface Animal {
public abstract void cry();
public abstract String getAnimalName();
}
package java期末测试题第八题;
public class Simulator {
public void playsound(Animal animal){
System.out.print(animal.getAnimalName()+"类声音:");
animal.cry();
}
}
package java期末测试题第八题;
public class Cat implements Animal{
//具体类是不能直接多实现接口的 所以必须将接口中的抽象方法具体化或者 具体类转化为抽象类
public void cry(){
System.out.println("小猫喵喵叫");
}
public String getAnimalName() {
return "猫";
}
}
package java期末测试题第八题;
public class Dog implements Animal{
public void cry() {
System.out.println("小狗汪汪叫");
}
public String getAnimalName() {
return "狗";
}
}
package java期末测试题第八题;
public class Test8 extends Simulator {
public static void main(String[] args) {
Simulator animal=new Simulator();
animal.playsound(new Dog());
animal.playsound(new Cat());
}
}