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 }