关于Java多态简单讲解
面向对象程序设计有三大特征,分别是封装,继承和多态。
这三大特性相辅相成,可以使程序员更容易用编程语言描述现实对象。
其中多态
多态是方法的多态,是通过子类通过对父类的重写,实现不同子类对同一方法有不同的实现,从而达到灵活的编程。
重载和重写的区别:
重载是同一类中,写多个相同的方法名但不同参数的方法,在调用方法时,根据传参类型、数量的不同,执行不同的函数。
重写是有继承关系的不同类中,子类对父类的相同函数重写的过程。
重载
主类:
public class Main {public static void main() {Student stu = new Student();System.out.println(stu.think();System.out.println(stu.think(12,20);System.out.println(stu.think("数风流人物,还看今朝"));}
}
学生类:
// 重载
// 在类中把think方法重载
// 对于学生类的思考,传入不同的参数类型可以运行不同的实现
public class Student() {public static void think() {// 学生开始思考System.out.println("仅仅开始思考...");}public static void think(int a,int b){// 学生计算两数相加System.out.println("两数相加等于: "a+b);}public static void think() {// 学生朗读文本System.out.println("开始朗读文本: "+str);}
}
重写
主类
public class Main {public static void Main() {// 多态的条件3(父类的引用指向子类的对象)Animal a = new Yuji();Animal b = new Gongsunli();a.speak();b.speak();}
}
ADC类(父类)
public class Animal {// 射手说话的函数public void speak() {System.out.println("射手正在说话...");}
}
公孙离类(子类)
// 多态的条件1(父子类有继承关系)
public class Gongsunli extends Animal {// 公孙离类开始说话// 多态的条件2(子类需要重写父类的某方法)@Overridepublic void speak() {System.out.println("花绽放于长安的春日,温暖又幸福。")}
}
虞姬类(子类)
public class Yuji {// 虞姬类开始说话@Overridepublic void speak() {System.out.println("来来,妾当与大王对饮。")}
}