亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

Java 中的抽象類及接口

原創(chuàng) 2016-11-07 15:13:25 366
摘要:抽象類使用 abstract 關鍵字修飾,該類即為抽象類。抽象類的作用:1、某些情況下,父類約束子類必須包含哪些方法,但不知道子類如何去實現(xiàn)這些方法。2、可以從多個具有相同特征的類中抽象出一個抽象類,以這個抽象類作為子類的模板,避免子類設計的隨意性。抽象類的使用規(guī)則:1、使用 abstract 定義抽象對象;2、abstract 定義抽象方法,只有聲明,不需要實現(xiàn);3、包含抽象

抽象類使用 abstract 關鍵字修飾,該類即為抽象類。

抽象類的作用:

1、某些情況下,父類約束子類必須包含哪些方法,但不知道子類如何去實現(xiàn)這些方法。

2、可以從多個具有相同特征的類中抽象出一個抽象類,以這個抽象類作為子類的模板,避免子類設計的隨意性。

抽象類的使用規(guī)則:

1、使用 abstract 定義抽象對象;
2、abstract 定義抽象方法,只有聲明,不需要實現(xiàn);
3、包含抽象方法的類是抽象類;
4、抽象類中可以包含普通的方法,也可以沒有抽象方法;
5、抽象類不能直接創(chuàng)建,可以定義引用變量,指向子類對象;

首先先創(chuàng)建一個抽象類:

public abstract class Telephone {    //打電話
    public abstract void call();    //發(fā)短信
    public abstract void sendMessage();
}

接著分別創(chuàng)建兩個子類繼承該父類,子類必須包含父類所聲明的抽象方法,否則會報錯:

public class CellPhone extends Telephone{

    public void call(){
        System.out.println("通過鍵盤來打電話");
    }

    public void sendMessage()
    {
        System.out.println("通過鍵盤來發(fā)短信");
    }
}
public class SmartPhone extends Telephone{    public void call(){
        System.out.println("通過語音來打電話");
    }    public void sendMessage()
    {
        System.out.println("通過語音來發(fā)短信");
    }
}

再創(chuàng)建一個測試類:

public class Test {    public static void main(String[] args) {        //普通手機
        Telephone cellphone = new CellPhone();
        cellphone.call(); //通過鍵盤來打電話
        cellphone.sendMessage(); //通過鍵盤來發(fā)短信        //智能手機
        Telephone smartphone = new SmartPhone();
        smartphone.call(); //通過語音來打電話
        smartphone.sendMessage(); //通過語音來發(fā)短信
    }
}

 Java中的接口被用來繼承,必為abstract,一般為public,且內部為常量和抽象方法,一個類可以實現(xiàn)多個接口。

首先創(chuàng)建一個新的接口:

public interface IPlayGame {
    public String todo = "可以玩游戲";
    public void playGame();

將SmartPhone類改寫為:

public class SmartPhone extends Telephone implements IPlayGame{    protected String name = "智能手機";    public void call(){
        System.out.println("通過語音來打電話");
    }    public void sendMessage()
    {
        System.out.println("通過語音來發(fā)短信");
    }

    @Override    public void playGame() {
        System.out.println(name + todo);
    }
}

實例化并輸出:

IPlayGame sp = new SmartPhone();
sp.playGame(); //智能手機可以玩游戲

在接口在使用過程當中,還經常與匿名內部類配合使用,匿名內部類就是沒有名字的內部類,多用于關注實現(xiàn)而不關注實現(xiàn)類的名稱。

//第一種實現(xiàn)方法IPlayGame ip1 = new IPlayGame() {
      @Override      public void playGame() {
           System.out.println("匿名內部類的方法實現(xiàn)接口" + todo); //匿名內部類的方法實現(xiàn)接口可以玩游戲      }
};
ip1.playGame(); //調用接口方法//第二種實現(xiàn)方法new IPlayGame() {
      @Override      public void playGame() {
            System.out.println("匿名內部類的方法實現(xiàn)接口" + todo); //匿名內部類的方法實現(xiàn)接口可以玩游戲      }
}.playGame();
發(fā)布手記

熱門詞條