java遗珠之协变返回类型
Posted 吴冬冬
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java遗珠之协变返回类型相关的知识,希望对你有一定的参考价值。
子类重写父类的方法时返回类型和父类方法的返回类型可以不同,但是子类的返回类型必须是父类方法返回类型的子类。
父类
public class Bicycle
private int cadence;
private int gear;
private int speed;
public Bicycle(int startCadence, int startSpeed, int startGear)
gear = startGear;
cadence = startCadence;
speed = startSpeed;
public Bicycle newBike()
return new Bicycle(1, 1, 1);
子类
public class MountainBike extends Bicycle
public int seatHeight;
public MountainBike(int startHeight, int startCadence,
int startSpeed, int startGear)
super(startCadence, startSpeed, startGear);
seatHeight = startHeight;
@Override
public MountainBike newBike()
return new MountainBike(1, 1, 1, 1);
如果返回类型不是父类返回类型的子类就会报错: attempting to use incompatible return type
@Override
public Object newBike()
return new Object();
以上是关于java遗珠之协变返回类型的主要内容,如果未能解决你的问题,请参考以下文章