多态的简单理解
子类的实例化对象用父类接受确实是多态(Polymorphism)的一种体现。在 Java 或其他支持面向对象编程的语言中,多态允许一个父类引用变量来引用一个子类的实例。这意味着父类类型的引用可以指向它的任何子类对象,而具体调用哪个类的方法则取决于对象的实际类型。
这种机制有几个关键的好处:
代码通用性:你可以编写通用的代码来处理父类类型的引用,而实际上它们可以指向任何合适的子类对象。
运行时绑定:在运行时,虚拟机(Virtual Machine)决定要调用哪个类的方法,基于对象实际引用的对象类型,而不是引用变量的类型。这被称为“后期绑定”或“动态方法分派”。
点击查看代码
class Animal {
void makeSound() {
System.out.println("Some sound");
}
}
class Dog extends Animal {
@Override
void makeSound() {
System.out.println("Bark");
}
}
class Cat extends Animal {
@Override
void makeSound() {
System.out.println("Meow");
}
}
public class TestPolymorphism {
public static void main(String[] args) {
Animal myDog = new Dog();
Animal myCat = new Cat();
myDog.makeSound(); // 输出 "Bark"
myCat.makeSound(); // 输出 "Meow"
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理