java多态性:一个简介
java是一门面向对象的编程语言,它的核心概念之一就是多态性。多态性可以简单地理解为一个对象在不同的情况下表现出不同的行为,它给java带来了很多优势,例如更加灵活的代码设计,更好的代码复用等等。java的多态性表现在三个方面:泛型、方法重载/重写和接口实现。
java多态性:泛型实现
java的泛型是一种强大的多态性实现方式。它允许我们编写可以处理多种不同类型的代码,而无需为每种类型单独编写一套代码。泛型中的类型参数在运行时可以被动态确定,从而实现了多态性。例如,我们可以编写一个通用的list类,并使用泛型类型参数来表示其元素的类型:
list
list
在以上代码中,我们可以看到list的类型参数
java多态性:方法重载/重写实现
java的方法重载和方法重写也是多态性的体现。方法重载指的是在同一个类中编写多个相同名称但参数不同的方法,例如:
public void print(string str) {
system.out.println("print string: " str);
}
public void print(int i) {
system.out.println("print int: " i);
}
在以上代码中,我们定义了两个print()方法,一个接受string类型的参数,一个接受int类型的参数。如果我们调用print("hello"),那么第一个print()方法将被执行,如果我们调用print(123),那么第二个print()方法将被执行,这就是方法重载的多态性表现。
方法重写指的是在子类中重新定义父类的同名方法。由于java的继承性,子类对象可以被赋值给父类类型的变量,例如:
animal a = new dog();
a.speak();
在以上代码中,我们定义了一个animail类型的变量a,并将其赋值为一个dog类型的对象。dog继承自animal,并重写了speak()方法。由于java的动态绑定性,当我们调用a的speak()方法时,实际执行的是dog类中重写的speak()方法,这就是方法重写的多态性表现。
java多态性:接口实现
java的接口也是一种多态性的实现方式。接口定义了一组操作方法的集合,而实现接口的类则必须实现这些方法。由于接口可以被多个类实现,因此它可以实现不同类之间的多态性。例如,我们可以定义一个drawable接口,并让多个图形类型的类实现它:
public interface drawable {
void draw();
}
public class circle implements drawable {
public void draw() {
system.out.println("draw a circle");
}
}
public class rectangle implements drawable {
public void draw() {
system.out.println("draw a rectangle");
}
}
在以上代码中,我们定义了drawable接口,并让circle和rectangle类实现它。这意味着我们可以通过drawable接口类型的变量来引用不同的图形类型对象,例如:
drawable d1 = new circle();
drawable d2 = new rectangle();
d1.draw();
d2.draw();
在以上代码中,我们分别定义了d1和d2两个drawable类型的变量,并将它们分别赋值为一个circle和rectangle对象。由于circle和rectangle都实现了drawable接口,并重写了draw()方法,因此当我们调用d1和d2的draw()方法时,分别会执行circle和rectangle中重写的draw()方法,这就是接口实现的多态性表现。
本文来自投稿,不代表亲测学习网立场,如若转载,请注明出处:https://www.qince.net/java5d9.html
郑重声明:
本站所有内容均由互联网收集整理、网友上传,并且以计算机技术研究交流为目的,仅供大家参考、学习,不存在任何商业目的与商业用途。 若您需要商业运营或用于其他商业活动,请您购买正版授权并合法使用。
我们不承担任何技术及捕鱼10元起上10元下的版权问题,且不对任何资源负法律责任。
如遇到资源无法下载,请点击这里失效报错。失效报错提交后记得查看你的留言信息,24小时之内反馈信息。
如有侵犯您的捕鱼10元起上10元下的版权,请给我们私信,我们会尽快处理,并诚恳的向你道歉!