面向對象編程(二)
對象的轉型:分 向上轉型 和 向下轉型(強制類型轉換)
向上轉型:父類的引用指向子類的對象,但是不能使用子類多出來的方法。
如:
public class Test{ public static void main(String args[]){ Person p = new Person(); p.playWithAnimal(new Dog()); } } class Animal{ String furColor; public void ecstasy(){ System.out.println("------ecstasy-------"); } public void sleep(){ System.out.println("------sleeping-----------"); } } class Dog extends Animal{ String furColor; } class Cat extends Animal{ String furColor; } class Person{ public void playWithAnimal(Animal a){ a.ecstasy(); } }
向下轉型 如:
Animal a = new Cat(); Cat c = (Cat)a;
抽象類:用來被繼承,又不需要創建這個類的對象的類。創建抽象類使用abstract關鍵字。
abstract關鍵字可加在類前還可以加在方法前面,那么該方法稱為抽象方法(用來被子類重寫,不能有方法體)
下面是抽象類和抽象方法的實例:
public class Test{ public static void main(String args[]){ Cat c = new Cat(); c.sleep(); } } abstract class Animal{ String furColor; public void ecstasy(){ System.out.println("------ecstasy-------"); } public abstract void sleep(); } class Dog extends Animal{ String furColor; public void sleep(){ System.out.println("Dog is sleeping"); } } class Cat extends Animal{ String furColor; public void sleep(){ System.out.println("Cat is sleeping"); } }
具有抽象方法的類一定是抽象類;抽象類既可以有抽象方法和又可以有非抽象方法
常量:final關鍵字加在變量前面,該變量變為常量,在定義常量的時候一定要初始化值
接口(interface)(標準、規范):特殊的抽象類,只能有抽象的方法和常量
類可以實現接口 class XXX implements XXX{} ,類實現接口必須遵循其所有方法;
多實現:一個類可以實現多個接口(區別繼承,只能單繼承)
接口之間是繼承關系。
浙公網安備 33010602011771號