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

xiaoxiao2021-02-28  90

方法的重写、覆盖

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

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

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

覆盖方法举例(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();   } }

 

转载请注明原文地址: https://www.6miu.com/read-54362.html

最新回复(0)