2014-01-24 107 views
0

我正在做一個練習,這本書並沒有幫助我理解這個概念,也沒有在線資源。這可能看起來很愚蠢,但我不知道我錯過了什麼!我對Java相當陌生,並且已經看過其他堆棧上的例子,但無濟於事:我需要聲明3個接口。每個接口都需要聲明一個與接口名稱相同的方法。然後抽象類被3個實現上述接口的類擴展。每個類都需要實例化。如果有人能夠解釋這個過程,我會永遠感激。聲明一個接口並在一個抽象類的類中實現Java

interface antiLockBrakes{ 
    public void antiLockBrakes(); 
} 

interface cruiseControl{ 
    public void cruiseControl(); 
} 

interface powerSteering{ 
    public void powerSteering(); 
} 

public abstract class Auto{ 
    abstract class Model1 extends Auto implements antiLockBrakes{ 
     public abstract void antiLockBrakes(); 
     Model1 mod1 = new Model1(); 
     mod1.antiLockBrakes(); 
    } 

    public static void main(String[] args){ 
    } 
} 
+1

抽象類和接口不能被實例化,如果你想創建的抽象或接口的實例,你應該使用匿名類antiLockBrakes對象=新antiLockBrakes(){@Override} – Koitoer

+0

等待 - 你有'Model1'作爲'Auto'的內部類,它也擴展了'Auto'?我想知道這可以用於什麼.. – Krease

+2

我認爲你錯過了一個很好的教程(你的書似乎「令人困惑」)。 Oracle java教程可能是一個很好的起點。 – 2014-01-24 06:43:47

回答

1

這是你的問題:有人解釋如何申報和interfa然後讓它在抽象類中執行吧?

這是它的答案。

見讓我們考慮我有一個接口

interface someInterface{ 
    public void someMethod(); 
} 

現在實行someInterface在抽象類

public abstract class SomeClass implements someInterface{ 
    public void someMethod(){ 
       System.out.println("Inside someMethod"); 
    } 
    public abstract myMethod(); 
} 

請參閱類SomeClass的,我們通過給定義來實現的接口方法someMethod()因爲我們希望這個SomeClass是一個抽象類,我們已經定義了一個抽象方法myMethod()它。

現在任何從SomeClass擴展的類都會隱式地實現接口someInterface(因爲SomeClass已經實現了它),並且如果它想爲someMethod()自己定義它可以覆蓋它。但是如果一個子類想要成爲一個具體的類(一個類中所有的方法都有實現),那麼它就必須爲抽象方法myMethod()提供實現。

HTH :)

+0

PS:請具體當您提出問題:) – iamyogish

+0

謝謝,這真的有助於澄清事情。道歉不具體,但是當你不知道發生了什麼時,這有點困難!謝謝!! – buffalol

+0

@ user3069056雅我完全明白它..但嘗試具體爲未來qsns你會問:) – iamyogish

0

這就是我喜歡用看抽象類和接口類之間的差別

接口類

//I say all motor vehicles should look like that : 
interface MotorVehicle { 


    void run(); 

    int getFuel(); 
} 

// my team mate complies and write vehicle looking that way 
class Car implements MotorVehicle { 

    int fuel; 

    public void run() { 
     System.out.println("Wrroooooooom"); 
    } 

    public int getFuel() { 
     return this.fuel; 
    } 
} 

抽象類

// I say all motor vehicles should look like that : 
abstract class MotorVehicle2 { 

    int fuel; 

    // they ALL have fuel, so why let others implement that ? 
    // let's make it for everybody 
    int getFuel() { 
     return this.fuel; 
    } 

    // that can be very different, force them to provide their 
    // implementation 
    abstract void run(); 

} 

// my team mate complies and write vehicle looking that way 
class Car2 extends MotorVehicle2 { 
    void run() { 
     System.out.println("Wrroooooooom"); 
    } 
} 
相關問題