2017-12-07 8 views
-2

私は抽象クラスを作成しました。そして、この抽象クラスを継承する3つのクラスを作成しました。今、私はこのクラスによって拡張されたすべてのクラスを持つArrayを返す抽象クラスでメソッドを作りたいと思います。抽象クラスで拡張されたすべてのクラスを取得するには?

public abstract class Item { 

String name; 
int atk; 
int def; 

public String getName() { 
    return name; 
} 
public int getAttackValue() { 
    return atk; 
} 
public int getDefenseValue() { 
    return def; 
} 
public static Item[] getAllItems() { 
    //TODO 
} 

public Item(String name, int atk, int def) { 
    this.name = name; 
    this.atk = atk; 
    this.def = def; 
} 
} 

例を見

public class Sword extends Item{ 

    public Sword() { 
     super("Sword", 15, 0); 
    } 
} 
+0

'それから私は、彼らはありません。この抽象class'によって拡張されている3つのクラスを作りましたそれによって拡張され、彼らは抽象クラスを拡張します。 – XtremeBaumer

+1

これで何をしたいですか? – derM

+4

[実行時に、ベースクラスを拡張するJavaアプリケーション内のすべてのクラスを見つける](https://stackoverflow.com/questions/205573/at-runtime-find-all-classes-in-a-java-アプリケーションベースの拡張クラス) – XtremeBaumer

答えて

0

拡張クラスのために、この例のお手伝いをすることができる。

import java.util.*; 

public class Animal{ 
public void eat() 
{ 
    System.out.println("I eat like a generic Animal."); 
} 

public static void main(String[] args) 
{ 
    List<Animal> animals = new LinkedList<Animal>(); 

    animals.add(new Animal()); 
    animals.add(new Wolf()); 
    animals.add(new Fish()); 
    animals.add(new Goldfish()); 
    animals.add(new OtherAnimal()); 

    for (Animal currentAnimal : animals) 
    { 
    currentAnimal.eat(); 
    } 
    } 
} 

public class Wolf extends Animal 
{ 
@Override 
public void eat() 
{ 
    System.out.println("I eat like a wolf!"); 
} 
} 

public class Fish extends Animal 
{ 
@Override 
public void eat() 
{ 
    System.out.println("I eat like a fish!"); 
} 
} 

public class Goldfish extends Fish 
{ 
@Override 
public void eat() 
{ 
    System.out.println("I eat like a goldfish!"); 
} 
} 

public class OtherAnimal extends Animal {} 
関連する問題