java的多態(一)

package grammar;
//定義好父類
public class Parent {
    //一個屬性
 private String name = "Parent";
    //
 public String getName() {
  return name;
 }
  
 public void setName(String name) {
  this.name = name;
 }
  //一個方法
 public void doSomething(Parent parent) {
  System.out.println(parent.getName());
  System.out.println(parent.getClass());
 }ide

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
       Parent parent=new Parent();
    // 傳遞A的引用,則調用的是Son1類的getName方法  
       parent.doSomething(new Son1());
    // 傳遞A的引用,則調用的是Son2類的getName方法  
       parent.doSomething(new Son2());
     /*  Son1
        class grammar.Son1
        Son2
        class grammar.Son2
       */
       //因而可知,父類的doSomething方法多態地調用了咱們傳遞的對象的getName方法,而不是Parent類自己的getName方法。
 }
}this

class Son1 extends Parent {
 private String name = "Son1";
    //繼承
 public String getName() {
  return name;
 }
}對象

class Son2 extends Parent {
 private String name = "Son2";
    //繼承
 public String getName() {
  return name;
 }
}繼承

相關文章
相關標籤/搜索