您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
在 Java 中,协变(covariance)是指子类对象可以赋值给父类引用,而不会导致类型转换错误。在接口中,协变主要体现在方法参数的继承和返回值的扩展上。
例如:
interface Animal {
void eat(Animal animal);
}
class Dog implements Animal {
@Override
public void eat(Animal animal) {
// ...
}
}
class GoldenDog extends Dog {
// ...
}
public class Main {
public static void main(String[] args) {
Animal myAnimal = new GoldenDog();
myAnimal.eat(new GoldenDog()); // 协变体现在这里,GoldenDog 可以赋值给 Animal 类型
}
}
例如:
interface Animal {
Animal getAnimal();
}
class Dog implements Animal {
@Override
public Dog getAnimal() {
return this;
}
}
class GoldenDog extends Dog {
// ...
}
public class Main {
public static void main(String[] args) {
Animal myAnimal = new GoldenDog();
Animal animal = myAnimal.getAnimal(); // 协变体现在这里,GoldenDog 可以赋值给 Animal 类型
}
}
需要注意的是,协变只适用于引用类型,对于基本数据类型(如 int、float 等)是不适用的。同时,协变要求子类对象与父类对象具有相同或更宽泛的类型,以确保类型安全。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。