目录
1、多态的概念?
多态指的是同一个方法调用,由于对象不同可能会有不同的行为。
现实生活中,同一个方法,具体实现会完全不同。 比如:同样是调用人的“休息”方法,张三是睡觉,李四是 旅游,数学教授是做数学题; 同样是调用人“吃饭”的方法,中国人 用筷子吃饭,英国人用刀叉吃饭,印度人用手吃饭。
多态的要点:
1. 多态是方法的多态,不是属性的多态(多态与属性无关)。
2. 多态的存在要有 3 个必要条件:继承,方法重写,父类引用指向子类对象。
3. 父类引用指向子类对象后,用该父类引用调用子类重写的方法,此时多态就出现了
2、多态如何实现?
多态的前提:继承+重写,所以我们创建Human类作为父类,Teacher类和Student类作为子类,先创建各自的对象进行测试,之后再重新创建两个子类对象,将创建出来的子类对象的地址值,交给父类类型的引用类型变量来保存,即实现了多态。
public class Human {
public void show() {
System.out.println("我是Human的show方法");
}
}
public class Teacher extends Human{
public void show() {
System.out.println("我是Teacher类的show方法");
}
}
public class Student extends Human{
public void show() {
System.out.println("我是Student类的show方法");
}
}
public class Test {
public static void main(String[] args) {
//分别创建各类的对象
Human human = new Human();
Teacher teacher = new Teacher();
Student student = new Student();
//调用各类自己show方法
human.show(); //输出:我是Human的show方法
teacher.show(); //输出:我是Teacher类的show方法
student.show(); //输出:我是Student类的show方法
//创建一个Human类型的Student对象
Human student1 = new Student();
//调用show方法
student1.show(); //输出:我是Student类的show方法
//创建一个Human类型的Teacher对象
Human teacher1 = new Teacher();
techer.show(); //输出:我是Teacher类的show方法
}
}
3、多态有什么用?
1、多态可以让我们不用关心某个对象到底是什么类型就可以使用该对象的某些方法;
2、同时多态也提高了程序的可扩展性和可维护性;
3、多态还可提高代码的复用性。