学做网站教程,WordPress导出单页,公司注册地址变更需要多久,外贸网络推广网目录 简单理解
满足多态的三个条件
有类继承或者接口实现
子类要重写父类的方法
父类的引用指向子类的对象。
代码示例
动态多态
静态多态
个人观点 简单理解
简单理解就是#xff0c;同一操作作用于不同的对象#xff0c;可以有不同的解释#xff0c;产生不同的执…目录 简单理解
满足多态的三个条件
有类继承或者接口实现
子类要重写父类的方法
父类的引用指向子类的对象。
代码示例
动态多态
静态多态
个人观点 简单理解
简单理解就是同一操作作用于不同的对象可以有不同的解释产生不同的执行结果。 说人话就是对于一个父类有个类继承它对吧我可以重写父类的方法对吧我可这样重写对吧又有一个类也能继承它对吧也能重写父类的方法对吧那样重写对吧这俩类都继承了一个父类都重写了父类的方法但是重写的内容不同这叫多态同理有个父接口两个类对父接口的实现不同不也是多态。 满足多态的三个条件 如果按照这个概念来定义的话那么多态应该是一种运行期的状态。为了实现运行期的多态或者说是动态绑定需要满足三个条件
有类继承或者接口实现
子类要重写父类的方法
父类的引用指向子类的对象。 代码示例
// 父类 Animal
class Animal {public void makeSound() {System.out.println(动物发出声音);}
}// 子类 Dog 继承自 Animal
class Dog extends Animal {Overridepublic void makeSound() {System.out.println(狗发出汪汪的声音);}
}// 子类 Cat 继承自 Animal
class Cat extends Animal {Overridepublic void makeSound() {System.out.println(猫发出喵喵的声音);}
}public class PolymorphismExample {public static void main(String[] args) {Animal animal1 new Dog(); // 使用父类引用指向子类对象Animal animal2 new Cat(); // 使用父类引用指向另一个子类对象animal1.makeSound(); // 调用的是子类 Dog 的 makeSound() 方法animal2.makeSound(); // 调用的是子类 Cat 的 makeSound() 方法//父类引用指向不同的子类对象展现出多种不同的姿态。}
}在代码中同样是动物的发出叫声的操作在狗子身上就是 “汪汪汪”在猫身上就是 “喵喵喵”同一操作作用于不同的对象可以有不同的解释产生不同的执行结果 前面说多态是一种运行期的概念。还有一种说法包括维基百科也说明认为多态还分为动态多态和静态多态。
动态多态
是指在运行时确定对象的具体类型并根据对象的类型调用相应的方法。Java中的方法重写就是一种动态多态因为在运行时虚拟机会根据对象的实际类型来调用相应的方法。
静态多态
是指在编译时确定函数或方法的具体调用这种多态性也被称为重载overloading。Java中的方法重载就是一种静态多态因为在编译时就能够确定调用的方法。 个人观点 我认为多态应该是一种运行期特性Java中的重写是多态的体现。不过也有人提出重载是一种静态多态的想法这个问题在StackOverflow等网站上有很多人讨论但是并没有什么定论。我更加倾向于重载不是多态。