java中什么是多态,多态有哪几种实现

2024年12月04日 18:31
有3个网友回答
网友(1):

多态是一种编程技巧
它增加论了程序的可扩展性

比如你要做个篮子放水果,你当然不希望造这样的篮子--苹果篮子,橘子篮子,梨篮子,正常人都会想,麻烦啊,我就造个篮子,什么都能放,干嘛造那么多啊?

回归程序:你造个篮子 basket();参数是水果 fruit,这样你调用的时候就可以这样 basket(fruit f);然后往里放苹果啊,梨啊,什么都行,只要是水果类的子类

好处:这样设计你的程序,等你的参数变了的时候,只要还是水果,你就不用去改程序了,这就是可扩展性的体现

fruit f = apple a
这就是一个多态的应用
多态应用的三个条件:
继承 (apple当然继承了fruit)
子类对象指向父类引用(a是apple的一个对象,f是fruit类父类的一个引用)
重写(就是子类重写父类继承来的方法。父类实现了一个方法,他不一定适合子类,因为如果适合你也就不用重新定义一个类了,用父类就行了。这时就需要去重新写一个方法,实现新的功能)

网友(2):

多态:一个名称,多种形态。
用处:设计方法的参数和返回值。
封装-------产生----->类 继承------产生------>多态

知识点1(核心):--仔细理解
A.任何子类的构造方法都将调用父类的构造方法。
B.任何构造方法的第一行必须是this(...)或super(...),如果没有写,系统会自动加一个默认的super()。
this(...):调用本类的其他构造方法 --必须要有其他构造方法并且至少有一个构造方法中有super()才行
super(...):调用父类的构造方法
解析:
A说明创建子类对象时要先创建父类对象,再在父类对象的基础上扩展子类的特性。
比如上帝想要创建科学家,必须要先创建人,再加入一些其他特质,才能成为科学家。
从存储结构上看,创建子类对象时申请的内存空间中有一部分是父类的,但他们仍然是一个对象

知识点2(多态问题中最基本最核心的理论)(面向对象核心理论):
A.如果我们把一个子类对象当作父类对象来看,那么我们就只能访问父类中有定义的属性和方法。
B.如果子类覆盖了父类的方法,我们把子类对象当作父类对象来看时,去调用该方法,调用的就是子类

网友(3):

继承
重写
父类引用指向子类对象
满足以上条件为多态....