问基类能不能调用基类没有定义 但是派生类定义的方法 !
比如这Food类和 Fruit类后者是前者的继承
后者有个grow方法是前者没有的 然后我这么做
Food myFood;
myFood= new Fruit();
myFood.grow();
这样可以吗 %要是不可以的话怎么才能调用我想调用的派生类的grow方法%;另外在实际的程序中 抽象和接口我们一般都都怎么用呢 两者似乎没有什么太大的区别。
比如这Food类和 Fruit类后者是前者的继承
后者有个grow方法是前者没有的 然后我这么做
Food myFood;
myFood= new Fruit();
myFood.grow();
这样可以吗 %要是不可以的话怎么才能调用我想调用的派生类的grow方法%;另外在实际的程序中 抽象和接口我们一般都都怎么用呢 两者似乎没有什么太大的区别。
比如food是父类,fruit是子类。子类有的属性,父类未必有。
不能直接调用,有两种办法可以:
1.在父类中声明一个grow()
2. ((Fruit)myFood).grow();
myFood= new Fruit();
myFood.grow();
public static void main(String[] args) {
Base o = new Derived();
o.doSomething();
}
}class Base {
public void doSomething() {
System.out.println("hi - Base");
Derived o = (Derived)this;
o.doOthers();
}
}class Derived extends Base {
public void doOthers() {
System.out.println("hi - Derived");
}
}
“正宗”的做法是,在基类里定义 abstract 方法,由派生类实现。