VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • 五(八)、方法的重写

方法重写的理解 override overwrite;
1.重写:子类继承父类后,对父类中同名同形参列表的方法进行覆盖;
2.重写以后,当创建子类对象,通过子类对象调用子父类的同名同参的方法时,实际执行的是子类重写父类的方法;
3.重写的规定:
        方法的声明:权限修饰符 返回值类型 方法名(形参列表)throws 异常类型{
        //方法体
    }
  约定俗称:子类中的叫重写方法,父类中的叫被重写的方法;
  子类重写的方法的方法名和形参列表 与 父类被重写的方法的 方法名和形参列表相同
  子类重写的方法的权限修饰符 不小于 被重写方法的权限丢师傅
  特殊情况:子类中不能重写父类中的private修饰的方法;
  返回值类型:父类被重写的方法的返回值类型是void,子类重写的方法返回值类型必须是void;
  父类被重写的方法的返回值类型是A 类型,则子类重写的方法返回值类型是A类OR A类的子类
  父类被重写的方法的返回值类型 如果是基本类型(比如是 double);则子类重写的方法返回值类型是相同的基本数据类型(必须是double)
  子类重写的方法抛出的异常不大于父类被重写的方法抛出的异常类型;
开发中往往直接复制过来,然后重写方法体;
子类和父类中同名和同参数的方法,要么都是声明非static的(考虑重写),要么都声明static的(不是重写;);

复制代码
class Persons2{
    String name;
    int age;
    public Persons2() {
    }
    
    public void eat() {
        System.out.println("吃饭");
    }
    public void walk(int distance) {
        System.out.println("走了"+distance+"公里");
    }
}

class Student extends Persons2{
    String major;

    public Student() {
    }

    public Student(String major) {
        this.major = major;
    }
    
    public void study() {
        System.out.println("学习,专业是:"+major);
    }
    
    //对父类中的eat方法的覆盖
    public void eat() {
        System.out.println("学生应该吃有营养的东西");
    }
}
复制代码
Student 子类 继承了 Person2,并且重写了eat方法 于此同时,会覆盖 父类的方法 换句话来说,当调用student 的eat方法时,调用的时重写过父类的eat方法,
那么要是student还想使用父类的eat方法,那应该怎么办呢?那么就需要引入super关键字了;

我从来不相信什么懒洋洋的自由。我向往的自由是通过勤奋和努力实现的更广阔的人生。 我要做一个自由又自律的人,靠势必实现的决心认真地活着。
 
 
来源:https://www.cnblogs.com/lixiuming521125/p/13305873.html

相关教程