子父类重写,如果子类重写了父类的方法,必须要走子类的重写吧,
当创建子类对象的时候,重写的方法被子类调用,但调用前要看返回值类型,因为方法规则是编译期看父类,如果返回值类型大于父类那么编译期就无法判断这是父类,此时就会报错.作者: 百無禁忌 时间: 2019-9-26 16:16
class A{}
class B extends A{}
abstract class Animal
{
String name;
public Animal() {
}
public Animal(String name) {
this.name=name;
}
abstract A run();
}
class Dog extends Animal
{
@Override
public B run() {
return new B();
}
}
B 是A 的子类
Dog类是Animal的子类,Dog类继承了Animal类以后要实现其父类的抽象方法run();父类抽象方法中run()的返回值类型时A类的,所以子类Dog在实现父类的run()方法时,返回值要小于等于父类的返回值类型,即可以是A类的对象,也可以是A子类的对象,比如B类的对象;作者: xiaowang66 时间: 2019-9-26 20:25
加油呀