文章出處

一、多態

1、什么是多態?

解析:不同的對象對于同一個操作,做出的響應不同

         具有表現多種形態的能力的特征

2、使用多態的優點

解析:為了實現統一調用

一個小例子:<父類類型作為參數>

父類(Pet) 子類(Gog,Penguin) 主人類(Master)測試類(Test)

Pet

public abstract class Pet {
    public abstract void eat();

}

Dog

   public class Dog extends Pet{

    @Override
    public void eat() {
        System.out.println("夠吃骨頭");
        
    }

Penguin  

   public class Penguin extends Pet {

    @Override
    public void eat() {
        System.out.println("企鵝吃fish");
        
    }

Master 

public class Master {
    //父類類型作為參數
public void feed(Pet pet)
{
    pet.eat();
    }

}

Test 

    public static void main(String[] args) {
        Master master=new Master();
        
        Pet pet=new Dog();
        
        master.feed(pet);

    }

二、子類到父類的轉換(向上轉型)

規則:

① 將一個父類的引用指向一個子類對象,成為向上轉型,自動進行類型轉換

② 此時通過父類引用變量調用的方法是子類覆蓋或繼承父類的方法,不是父類的方法

③ 通過父類引用變量無法調用子類特有的方法

三、java中兩種實現和使用多態的方式

① 使用父類作為方法形參

② 使用父類作為方法返回值

四、父類到子類的轉換(向下轉型)

將一個指向子類對象的父類引用賦給一個子類的引用,稱為向下轉型。此時必須進行強制類型轉換

五、instanceof運算符

語法:

對象 instanceof 類或接口

該運算符用來判斷一個對象是否屬于一個類或者實現了一個接口,結果為true或false

① 使用instanceof運算符時,對象的類型必須和instanceof的第二個參數所指定的類或接口在繼承樹上有上下級關系,否則會出現編譯錯誤

② instanceof通常和強制類型轉換結合使用


 

六、接口

在java語言中,接口有兩種意思:

①概念性的接口,即系統對外提供的所有服務

②指用interface關鍵字定義的接口,也稱為接口類型

七、特征

① 接口中的成員變量默認都是public、static、final類型的,必須被顯示初始化

②接口中的方法默認都是public、abstract類型的

③接口沒有構造方法,不能被實例化

④一個接口不能實現另一個接口,但它可以繼承多個其他接口

⑤接口必須通過類來實現它的抽象方法

⑥ 一個類只能繼承一個直接父類,但能實現多個接口

八、語法

① 修飾符 interface 接口名 extends 父接口1,父接口2....{

//常量定義

//方法定義

}

② class 類名 extends 父類名 implements 接口1,接口2....{

//類成員

}

一個小例子:

使用java接口來模擬生活中的USB接口

1、先定義USB接口,通過service()方法提供服務

public interface Usbinterface{

void service();
}

2、定義U盤類,實現USB接口中的service()方法,進行數據傳輸

public class UDisk implementd UsbInterface{
public void service()
{
System.out.println("連接USB口,開始數據傳輸!");

}

}

3、定義USB風扇類,實現USB接口中的service()方法,獲得電流使風扇轉動

public class UsbFan implementd UsbInterface{
public void service()
{
System.out.println("連接USB口,獲得電流,風扇開始轉動!");

}

}

4、編寫測試類

public class Test{
public static void main(String[]args){
//u盤
UsbInterface uDisk=new UDisk();
uDisk.service();

//USB風扇
UsbInterface usbFan=new UsbFan();
usbFan.service();

}

}

 


文章列表


不含病毒。www.avast.com
arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()