0
点赞
收藏
分享

微信扫一扫

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());
  } /**
   * @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方法。
  }
 }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;
  }
 }

举报

相关推荐

0 条评论