码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-07-23 16:50:09      阅读:196      评论:0      收藏:0      [点我收藏+]

标签:system   int   private   span   main   stat   --   列表   ext   

方法的重写、覆盖


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


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


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


覆盖方法举例(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类的设计----方法的重写、覆盖

标签:system   int   private   span   main   stat   --   列表   ext   

原文地址:http://www.cnblogs.com/justdoitba/p/7224855.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!