zoukankan      html  css  js  c++  java
  • Java类的设计----方法的重写、覆盖

    方法的重写、覆盖


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


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


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


    覆盖方法举例(1)

    public class Person {
      public String name;
      public int age;
      public String getInfo() {
        return "Name: "+ name + " " +"age: "+ age;
      }
    }
    public class Student extends Person {
      public String school;
      public String getInfo() { //覆盖方法
        return "Name: "+ name + " age: "+ age + " school: "+ 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();
      }
    }

  • 相关阅读:
    IntelliJ Idea 常用快捷键列表
    IPv6地址存储
    一文看懂java的IO流
    AchartEngine的柱状图属性设置
    绘制图表改变其大小
    在Android上用AChartEngine轻松绘制图表
    Android 图表绘制 achartengine 示例解析
    封装一个类搞定90%安卓客户端与服务器端交互
    安卓图表引擎AChartEngine(三)
    AchartEngine 的学习
  • 原文地址:https://www.cnblogs.com/justdoitba/p/7224855.html
Copyright © 2011-2022 走看看