Java与子类共享父类var
这是我在android项目中尝试做的一个例子: 我有一个动物类,它是作为父母的抽象类,狗和猫作为子类。 所有动物都有自己的位置。 我创造了一种新的动物,像这样:Java与子类共享父类var,java,android,class,subclass,parent,Java,Android,Class,Subclass,Parent,这是我在android项目中尝试做的一个例子: 我有一个动物类,它是作为父母的抽象类,狗和猫作为子类。 所有动物都有自己的位置。 我创造了一种新的动物,像这样: Animals oDog = new Dog(new Vector3(x,y,z)); 我想在Animals类中创建一个方法,如: public Vector3 getPosition(){ return mPosition; } 谁在返回动物位置,我不必在所有动物子类中重写相同的方法。 我不知道如何正确地执行此操作,即使这
Animals oDog = new Dog(new Vector3(x,y,z));
我想在Animals类中创建一个方法,如:
public Vector3 getPosition(){
return mPosition;
}
谁在返回动物位置,我不必在所有动物子类中重写相同的方法。
我不知道如何正确地执行此操作,即使这是可能的。您可以创建一个抽象类,而无需创建任何抽象方法 只要你不把你的方法抽象化,它就应该是有效的
public abstract class Animal{
private Vector3 position;
public Animal(Vector3 pos){
position = pos;
}
public Vector3 getPosition(){
return mPosition;
}
}
public class Dog extends Animal{
public Dog(Vector3 pos){
super(pos);
}
}
public class Cat extends Animal{
public Cat(Vector3 pos){
super(pos);
}
}
然后你可以在任何具体的动物子类上调用getPosition,你试过吗?在父类中定义一个方法,这样子类就可以继承它,这就是为什么可以有子类。事实上,我想知道的是,如果我创建一个动物实例,就像我在new Dog中所说的,即使动物是抽象的,我要创造的每只未来狗都会有自己的位置。抽象类可以有正常的完全实现的方法,也可以有不定义实现的抽象方法。getPosition完全放在那里是有意义的。您创建的每个对象都必须完全实现。对于某些方法,不能有没有实现的对象。因此,不管动物如何定义getPosition,狗必须有这种方法。如果不是,您将不得不再次使Dog抽象,但您无法再创建Dog对象,因为现在,您需要一个Dog的子类来实现其余的抽象方法。@zapl如果getPosition不是抽象方法,即在Animal中完全定义,则所有子类都不必重新定义它。问题已经存在一年多了:是,但在前50道题中,出于某种原因,它出现了:因为它因语法错误而被修改。无论如何,祝你好运被接受: