当前位置 : 主页 > 编程语言 > java >

Java基础之方法重写和多态示例

来源:互联网 收集:自由互联 发布时间:2021-05-13
本文实例讲述了Java基础之方法重写和多态。分享给大家供大家参考,具体如下: 示例代码: 子类的方法与父类的方法具有相同的返回类型和签名,子类方法重写父类方法。 class A{ in

本文实例讲述了Java基础之方法重写和多态。分享给大家供大家参考,具体如下:

示例代码:

子类的方法与父类的方法具有相同的返回类型和签名,子类方法重写父类方法。

class A{
  int i,j;          //父类变量
  A(int a,int b){    //父类构造
    i=a;
    j=b;
  }
  void show(){     //父类方法
    System.out.println(i+"  "+j);
  }
}
class B extends A{   //继承父类
  int k;             //子类变量
  B(int a,int b,int c){  //子类构造
    super(a,b);     //调用父类构造
    k=c;
  }
  void show(){     //子类方法重写父类方法,会隐藏父类方法
    System.out.println(i+"  "+j);
  }
  void show(String msg){   //子类方法,重载父类方法(方法签名不同,称为重载)
    //super.show();         //显示调用父类方法
    System.out.println(msg+k);
  }
}
class Override{
  public static void main(String[] args){
    B b=new B(1,2,3);
    b.show("This is k: ");
    b.show();
  }
}

多态:父类对象可以引用子类对象,引用不同对象造成不同结果,称为多态。

class Sup{          //父类
  void who(){
    System.out.println("Sup");
  }
}
class Sub1 extends Sup{     //子类
  void who(){
    System.out.println("Sub1");
  }
}
class Sub2 extends Sup{    //子类
  void who(){
    System.out.println("Sub2");
  }
}
class DynDispDemo{
  public static void main(String[] args){
    Sup sup=new Sup();      //父类对象
    Sub1 sub1=new Sub1();  //子类对象
    Sub2 sub2=new Sub2();  //子类对象
    Sup supf;    //父类对象
    supf=sup;   //父类对象引用父类对象
    supf.who(); //调用父类方法
    supf=sub1; //父类对象引用子类对象
    supf.who(); //调用子类方法
    supf=sub2; //父类对象引用子类对象
    supf.who(); //调用子类方法
  }
}

更多java相关内容感兴趣的读者可查看本站专题:《Java面向对象程序设计入门与进阶教程》、《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

网友评论