Java类的设计----方法的重写覆盖

Posted 未来_我来

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java类的设计----方法的重写覆盖相关的知识,希望对你有一定的参考价值。

方法的重写、覆盖


在子类中可以根据需要对从父类中继承来的方法进行改造—覆盖方法(方法的重置、重写),在程序执行时,子类的方法将覆盖父类的方法。


覆盖方法必须和被覆盖方法具有相同的方法名称、参数列表和返回值类型


覆盖方法不能使用比被覆盖方法更严格的访问权限


覆盖方法举例(1)

public class Person {
  public String name;
  public int age;
  public String getInfo() {
    return "Name: "+ name + "\n" +"age: "+ age;
  }
}
public class Student extends Person {
  public String school;
  public String getInfo() { //覆盖方法
    return "Name: "+ name + "\nage: "+ age + "\nschool: "+ school;
  }
  public static void main(String args[]) {
    Student s1=new Student();
    s1.name="Bob";
    s1.age=20;
    s1.school="school2";
    System.out.println(s1.getInfo()); //Name:Bob age:20 school:school2
  }
}


Person p1=new Person();
p1.getInfo();
//调用Person类的getInfo()方法
Student s1=new Student();
s1.getInfo();
//调用Student类的getInfo()方法
这是一种“多态性”:同名的方法,用不同的对象来区分调用的是哪一个方法。

 

覆盖方法举例(2)

class Parent {
  public void method1() {}
}

class Child extends Parent {
  private void method1() {}
  //非法,子类中的method1()的访问权限private比被覆盖方法的访问权限public弱
}

public class UseBoth {
  public void doOtherThing() {
    Parent p1 = new Parent();
    Child p2 = new Child();
    p1.method1();
    p2.method1();
  }
}

 











































以上是关于Java类的设计----方法的重写覆盖的主要内容,如果未能解决你的问题,请参考以下文章

java中子类重写父类方法的思想本质

java 重载和重写的区别

java子类重写父类带泛型的方法

java有这种写法吗?生成一个对象的同时还覆盖重写了父类的方法…………

java如何调用父类的父类中被覆盖的方法

java 重载和重写的区别