本文介绍Java中三大特性之多态。实际上封装和继承都是为了多态服务的。什么是多态呢?多态指同一个实体同时具有多种形式。或者这样描述,同一个事件发生在不同对象上面,就有不同效果,这样的例子叫多态。下面,我们用多个子类调用同一个方法(子类重写了该方法),会得到不同结果。
1.Supper class,Student.java
package lesson01;
public class Student {
public int getAge(){
return 0;
}
}
2. 子类1,重写了父类的方法
package lesson01;
public class CollegeStudent extends Student {
public int getAge(){
return 10;
}
}
3.子类2,重写了父类的方法
package lesson01;
public class Student_ABC extends Student {
public int getAge(){
return 15;
}
}
4.测试类,运行一下
package lesson01;
public class MyClass {
public static void main(String[] args) {
Student st = new CollegeStudent();
Student st_abc = new Student_ABC();
System.out.println(st.getAge());
System.out.println(st_abc.getAge());
}
}
输出结果,第一个是10,第二个是15,调用了同样的方法,得到的结果不相同,这就是多态。多态存在的三个必要条件:
1)需要继承
2)需要重写
3)父类引用指向了子类对象
这里解释下第三点,父类引用指向了子类对象。Student st = new CollegeStudent(); 这个st是父类Student的一个引用,但是它指向了子类CollegeStudent()。多态的概念了解一下就可以,在自动化测试和开发中,你也很少遇到。