什么是多态以及为什么要使用多态?

什么是多态以及为什么要使用多态?

什么是多态

概念

一个类实例的相同方法在不同情形下有不同的表现形式。多态机制使得具有不同内部结构的对象可以共享相同的外部接口。(利用多态可以得到良好的设计)

理解

谈到面向对象的编程语言时不可避免的就要讲到继承,子类可以继承父类的所有结构(包含私有域与其他属性、方法)(所有私有操作属于隐式继承,需要其他方法调用)并且子类可以添加自己的成员变量以及方法,以实现自己独特的功能如果实际开发中发现某个类的方法可以做出一些改进,但工程已经交给用户使用了,那么以后再次创建该类的对象是就应该改进过来同时又不能影响程序其他部分对该方法的调用,也就是说,如果再次创建该类的对象是不能做出改进的,那么就需要该类创建一个子类并且覆写需要改进的方法由于程序其他地方可能需要调用该类的其他方法,如果对象的引用被创建成子类引用的话就不能被有效调用,这里就需要向上转型,即子类对象给了父类的引用。

举个例子:

class Person {

public void print() {

System.out.println("父类需要改进方法");

}

public void fun() {

System.out.println("父类中的其他方法");

}

}

class Student extends Person {

@Override

public void print() {

System.out.println("子类改进后的方法");

}

}

public class Test_11_6 {

public static void main(String[] args) {

Person per = new Student();//向上转型,子类对象给了父类的引用

per.print();//由于该方法被覆写,那么调用的是被覆写后的方法

per.fun();//调用父类的fun方法

}

}

为什么要使用多态

可替换性:多态对已存在的代码具有可替换性可扩充性:增加新的子类并不影响已存在类的多态性、继承性以及其他特性的运行和操作接口性:多态是父类(超类)通过方法签名,向子类提供了共同的接口,子类可以通过覆写完善或者覆盖这个接口。灵活性:在应用中体现了灵活多样的操作,提高了使用效率。参数统一性:

举个例子

class Person {

public void print() {

System.out.println("父类需要改进方法");

}

}

class Student extends Person {

@Override

public void print() {

System.out.println("Student类改进后的方法");

}

}

class Teacher extends Person {

@Override

public void print() {

System.out.println("Teacher类改进后的方法");

}

}

class Docter extends Person {

@Override

public void print() {

System.out.println("Docter类改进后的方法");

}

}

public class Test_11_6 {

public static void main(String[] args) {

Person per1 = new Student();

Person per2 = new Teacher();

Person per3 = new Docter();

per1.print();//由于该方法被覆写,那么调用的是被覆写后的方法

per2.print();

per3.print();

}

}

相关推荐

苏州民办普高/国际学校2025年学费信息汇总!
365bet亚洲最大网投

苏州民办普高/国际学校2025年学费信息汇总!

📅 07-03 👍 251
家族企业如何保持长青?
bet28365365游戏

家族企业如何保持长青?

📅 07-03 👍 681
dell笔记本无线鼠标怎么连接-戴尔笔记本无线鼠标怎么连
手机“五连号”被拍出百万高价,原来靓号这么值钱?
迅雷会员可以退款吗
365bet亚洲最大网投

迅雷会员可以退款吗

📅 06-29 👍 194
为什么不能欣赏IM这样的队伍?
bet28365365游戏

为什么不能欣赏IM这样的队伍?

📅 07-09 👍 912