怎么在Java中实现方法重写和多态

本文讲解"如何在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类型封装器:封装或者包装了基本类型的类。因为基本类型不是对象,所以需要类型封装器。Double :parseDouble(),Fl ...