遊戲背景音樂的種類—動態音效
阿新 • • 發佈:2020-10-16
抽象類:抽象類是程勳設計的結果
特點:
1.通過java關鍵字 abstract實現
2.可以修飾方法或者類
3.抽象類中 可以 沒有抽象方法(由子類去實現) ---外界不能例項化
4.如果類中沒有抽象方法 那該類必須定義一個抽象類
5.子類繼承了抽象類後,要麼是一個抽象類,要麼將所有抽象的方法重寫
6.用於多型中
7.抽象類不可以被例項化
public class C4 {
public static void main(String[] args) {
//Animal a = new Animal;//抽象不能被new
Animal a = new Cat();
a.eat();//宣告是用父類的,但是方法體還是子類的,如果沒重寫就是父類的
a.sleep();
}
}
//1.抽象是一個特殊類 特殊在 類裡可以有普通方法 還可以有抽象方法
abstract class Animal {
//沒有方法體的方法 叫 抽象方法,用abstract修飾
abstract public void eat();//有宣告,沒有方法體
//方法要不要抽象 --看需要不需要 提供方法體
public void sleep() {
System.out.println("sleep");
}
}
//子類要麼 繼承抽象類,然後就是一個抽象類
abstract class Dog extends Animal {
}
//要麼重寫抽象方法
class Cat extends Animal {
@Override
public void eat() {
System.out.println("no eat");
}
}
----------------------------------------------------
例2
//抽象類的使用
public class C5 {
public static void main(String[] args) {
Pig p = new Pig();
System.out.println(p.name);
System.out.println(p.PI);
}
}
abstract class Animal1{
public Animal1(){
System.out.println("父類 無參構造");
//抽象類裡 可有構造方法 ---有什麼用/
//給子類 new
}
//抽象類裡 可以有變數嗎? 可以有常量嗎 ? -- 都可以有
String name = "123";//可有變數
public static final double PI = 3.1415;//可有參量
//抽象類裡可以有普通方法嗎? 可以有抽象方法嗎? -- 都可以有
//抽象類裡可以都是普通方法嗎 ? 可以都是抽象方法嗎? -- 都可以有
}
class Pig extends Animal1{
//預設有個無參構造
/*public Pig(){
//預設有個super();
System.out.println("子類 無參");
}*/
}