2015-11-12 168 views
-1

我有延伸的具體類的抽象類。但我對如何使用它感到困惑。我想如何用抽象類中的方法來實例化具體類,就像我通常會採取其他方法一樣?或者有另一種實例化類的方法嗎?抽象類擴展的具體類

+0

添加一些代碼,以便我們可以幫助您 – cssGEEK

+2

我很困惑如何使用您的想象代碼以及 – redFIVE

+0

你只需要再次擴展。 –

回答

8

一個抽象類總是延伸的具體類(java.lang.Object至少是)。所以它的工作原理與往常一樣。如果你想實例化它,你必須用這些抽象方法的具體實現來對它進行子類化,並通過具體的類來實例化它。

像往常一樣做的。這不是特例。

0

例如,假設我們已經擴展fooFather類foo的抽象類。

public abstract class Foo extends FooFather{ 



} 

然後我們創建一個擴展美孚這樣的一個子類:

public class Foo2 extends Foo{ 



} 

And initialize it like this 

Foo aFoo=new Foo2(); 
1

你可以有一個類型的實現。我的意思是這樣的: 假設你有一個動物類。該Animal類有一個方法名jump(),然後擴展Mammal另一個類。 Mammal類是抽象的。我的理解是,您希望任何課程延伸Mammal必須覆蓋jump()方法。這是我相信你的問題。爲了實現這一點,我會說創建一個抽象方法,並在原始方法中調用它。我的意思是,像這樣:

public class Animal 
{ 
    public final String name; 
    public final int weight; 

    public Animal(String name, int weight) 
    { 
     this.name = name; 
     this.weight = weight; 
    } 

    public void jump() 
    { 
     System.out.println(name + " Jumped"); 
    } 
} 

然後你有哺乳動物類:

public abstract class Mammal extends Animal 
{ 
    public Mammal(String name, int weight) 
    { 
     super(name, weight); 
    } 

    public abstract void jumpMammal(); 

    @Override 
    public final void jump() 
    { 
     jumpMammal(); 
    } 
} 

如果任何類試圖重寫Mammal類,他們被要求重寫jumpMammal()方法,因此運行在jump()方法中。