1 public class TestPolymorphic {
2
3 public static void main(String[] args) {
4
5 /*面向对象多态的特征分为两种*/
6
7 /*第一种是引用多态,表示父类可以指向本类引用,也可以指向子类引用*/
8 Parent x = new Parent(); //指向本类引用
9 Parent s = new Child();
10
11 /*但是子类不能指向父类引用*/
12 //Child c = new Parent(); //这样会报错
13
14 /*第二2种是方法多态,创建本类对象时,调用的是本类的方法,创建子类对象时则调用的是子类重写或者继承的方法*/
15 x.test(); //父类中的方法执行了!!!
16 s.test(); //子类中的方法执行了!!!
17 s.fn();
18 }
19
20 }
21
22 class Parent {
23 private int age;
24 private String name;
25 public int getAge() {
26 return age;
27 }
28 public void setAge(int age) {
29 this.age = age;
30 }
31 public String getName() {
32 return name;
33 }
34 public void setName(String name) {
35 this.name = name;
36 }
37
38 public void test() {
39 System.out.println("父类中的方法执行了!!!");
40 }
41
42 public void fn() {
43 System.out.println("子类并没有这个方法,但是因为继承所以也执行了");
44 }
45 }
46
47 class Child extends Parent {
48 public void test() {
49 System.out.println("子类中的方法执行了!!!");
50 }
51 }