导航菜单
首页 >  自考的优势和劣势是什么  > Java中什么是多态?多态的优势和劣势是什么?

Java中什么是多态?多态的优势和劣势是什么?

文章目录🍓🍓什么是多态?🍓🍓多态demo🍓🍓Java多态优势是什么🍓🍓Java多态劣势是什么

在这里插入图片描述

🍓🍓什么是多态?

在编程语言和类型论中,多态(英语:polymorphism)指为不同数据类型的实体提供统一的接口。 多态类型(英语:polymorphic type)可以将自身所支持的操作套用到其它类型的值上。

面向对象的三大特征:封装性、继承性、多态性,多态性就是多态,多态是在封装的升华,可以说没有封装就么有多态。

extends继承或者implements实现,无论是类与类之间的继承、类与接口之间的实现还是接口与接口间的继承,反正总会出现上下的层次关系,这种关系的产生就是多态性出现的前提。

为了更好的明白什么是多态,来个小demo吧!

🍓🍓多态demo

场景:有学生、老师、超级管理员,难道每一个都要重复写吗,这个岂不是很繁琐,维护起来很困难,若干年后当做diamagnetic重构的时候可能你都不想看你的代码了吧,应该是真的很繁琐,很复杂。

下面我们将创建三个子类【Student、Teacher、Administrator】和一个父类【Person】以及一个测试函数。

父类,包含普通的变量和一个show方法。

Person.java

package DT.demo1;public class Person {private String name;private int age;public Person() {}public Person(String name, int age) {this.name = name;this.age = age;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public void show(){System.out.println(name+","+age+"展示");}}

学生类,继承父类属性和方法并重写父类show方法

Student.java

package DT.demo1;public class Student extends Person{@Overridepublic void show() {System.out.println("学生的信息"+getName()+","+getAge());}}

老师类,继承父类属性和方法并重写父类show方法

Teacher.java

package DT.demo1;public class Teacher extends Person{@Overridepublic void show() {System.out.println("老师的信息"+getName()+","+getAge());}}

超级管理员类,继承父类属性和方法并重写父类show方法 Administrtors.java

package DT.demo1;public class Administrtors extends Person{@Overridepublic void show() {System.out.println("管理员的信息"+getName()+","+getAge());}}

为了不需要重写我们只需要new出想要的对象然后传入即可。这样就算后面需要添加

相关推荐: