java 接口與實現


Computable.java

public interface Computable {
   int MAX = 46;
   int f(int x);
}

China.java

public class China implements Computable {  //China類實現Computable接口
   int number;
   public int f(int x) { //不要忘記public關鍵字
      int sum=0;
      for(int i=1;i<=x;i++) {
         sum=sum+i;
      }
      return sum;
   }
}

Japan.java

public class Japan implements Computable { //Japan類實現Computable接口
   int number;
   public int f(int x) {
      return MAX+x; 
   }
}

Example6_1.java

public class Example6_1 {
   public static void main(String args[]) {
      China zhang; 
      Japan henlu;
      zhang=new China();   
      henlu=new Japan();  
      zhang.number=32+Computable.MAX; 
      henlu.number=14+Computable.MAX;
      System.out.println("zhang的學號"+zhang.number+",zhang求和結果"+zhang.f(100));
      System.out.println("henlu的學號"+henlu.number+",henlu求和結果"+henlu.f(100));
   }
}

接口的理解

   假如轎車、卡車、拖拉機、摩托車和客車都是機動車的子類,其中機動車是一個抽象類。機動車中有諸如“剎車”、“轉向”等方法是合理的,即要求轎車、卡車、拖拉機、摩托車和客車都必須具體實現“剎車”、“轉向”等功能。但是機動車類包含有兩個抽象類方法“收取費用”、“調節溫度”,那么所有子類都要重寫這兩個方法,即給出方法體,產生各自的的收費獲取控制溫度的行為。這顯然不符合人們的思維邏輯,因為拖拉機可能不需要“”收取費用”、“調節溫度”的功能,而其他一些類,如飛機、輪船等可能也需要具體實現“收取費用”、“調節溫度”。

   接口的思想在於它要求某些類有相同的方法,但方法的具體內容(方法體的內容)可以不同,即要求這些類實現接口,以保證這些類一定有接口中所聲明的方法(即所謂的方法綁定)。

Example6_2.java

abstract class MotorVehicles {
   abstract void brake();
}
interface MoneyFare {
   void  charge();
}
interface ControlTemperature {
   void controlAirTemperature();
}
class Bus extends MotorVehicles implements MoneyFare {
    void brake() {
        System.out.println("公共汽車使用轂式剎車技術");
    }
    public  void charge() {
        System.out.println("公共汽車:一元/張,不計算公里數");
    }
} 
class Taxi extends MotorVehicles implements MoneyFare,ControlTemperature {
    void brake() {
        System.out.println("出租車使用盤式剎車技術");
    }
    public  void charge() {
        System.out.println("出租車:2元/公里,起價3公里");
    }
    public void  controlAirTemperature() { 
        System.out.println("出租車安裝了Hair空調");
    }

}
class Cinema implements MoneyFare,ControlTemperature {
    public  void charge() {
        System.out.println("電影院:門票,十元/張");
    }
    public void  controlAirTemperature() { 
       System.out.println("電影院安裝了中央空調");
    }
}
public class Example6_2 {
   public static void main(String args[]) {
       Bus  bus101 = new Bus();
       Taxi buleTaxi = new Taxi();
       Cinema redStarCinema = new Cinema();
       bus101.brake(); 
       bus101.charge();
       buleTaxi.brake();
       buleTaxi.charge();
       buleTaxi.controlAirTemperature();
       redStarCinema.charge();
       redStarCinema.controlAirTemperature();
   }
}

 

個人理解:一些公共類方法大家都要用到的就繼承,一些特殊的就定義一個接口來實現。

class Taxi extends MotorVehicles implements MoneyFare,ControlTemperatur

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM