美文网首页
方法的重写(覆盖)与Super关键字

方法的重写(覆盖)与Super关键字

作者: 雪燃归来 | 来源:发表于2022-02-08 10:22 被阅读0次

一、方法重写(overriding method)

    在Java中,子类可继承父类的方法,而不需要重新编写相同的方法。但有时间子类并不想原封不动的继承父类的方法,而是想做一定的修改,这就需要采用方法的重写,方法的重写也叫方法的覆盖。
    在子类和父类中,重写方法后,以创建对象的类型为准,会调用谁的方法。

二、关于方法重写的特性

1、发生在子父类中,方法重写的两个方法返回值、方法名、参数列表必须完全一致(子类重写父类的方法)
2、子类抛出的异常不能超过父类相应方法抛出的异常(子类异常不能大于父类的异常)
3、子类方法的访问级别不能低于父类相应方法的访问级别(子类访问级别不能低于父类访问级别)
4、父类中的方法若使用 private、static、final任意修饰符修饰,那么不能被子类重写。

三、为什么要你重写方法?或者方法重写的目的是什么?

若子类从父类中继承过程的方法,不能满足子类特有的需求时,子类就需要重写父类中相应的方法,方法的重写也是程序扩展的体现。

class Dog{
    protected String name;
    private String sex;
    public void eat(){
        System.out.println("吃饭");
    }
}

class HomeDog extends Dog{
    // 方法的重写
    public void eat() {
        System.out.println("我是家狗,我喜欢吃骨头");
    }

    public void print(){
        System.out.println(name + "我是一只家狗, wangwang");
    }
}

class HuskyDog extends Dog{
    // 方法的重写
    public void eat(){
        System.out.println("我是Husky,我喜欢吃鸡肝");
    }
    public void show(){
        System.out.println(name+ "我是husky,我能跳舞");
    }
}

面试题 :overloading 与 overriding的区别?

overloading:方法的重载, 发生在同一个类中,方法名相同,参数列表不同,返回值无关。
overriding:方法的重写,发生在子父类中,方法名相同,参数列表相同,返回值相同。子类的访问修饰符要大于或者等于父类的访问修饰符。子类的异常声明必须小于或等于父类的异常声明。如果方法被private、static、final修饰,不能被重写。

四、super关键字

1、使用super调用父类中的属性,可以从父类实例获取信息。
2、使用super调用父类中的方法,可以委托父类对象帮忙完成某件事情。
3、使用super调用父类中的构造方法(super(实参)形式),必须在子类构造方法的第一条语句,调用父类中相应的构造方法, 若不显示的写出来,默认调用父类无参构造方法,比如:super();

this表示当前对象
使用super来调用父类的属性,方法、和构造方法

相关文章

  • java面向对象

    方法重载 方法重写 继承父类( 关键字: super、extends) super 关键字1.用super调用父类...

  • 方法的重写(覆盖)与Super关键字

    一、方法重写(overriding method) 在Java中,子类可继承父类的方法,而不需要重新编写相同的方法...

  • Swift-8.继承

    本章包含内容: 继承的概念和语法 super关键字 重写方法 重写属性 重写属性时的限制 重写属性观察器 用fin...

  • FragmentPagerAdapter+fragment重叠问

    重写isViewFromObject方法与destroyItem方法 不走super方法

  • Java继承与多态

    子类与父类、子类的继承性成员变量的隐藏与方法重写super与final关键字对象类型转换继承与多态抽象方法与抽象类...

  • recode

    1.添加属性和方法,以及对方法的重写重写:a.完全覆盖 b.保留父类的功能(super().父类方法) 添加对...

  • 继承

    子类与父类有同名方法,是为覆盖,调用子类实例时,执行子类中方法,如果需要调用父类则需要super关键字

  • 面向对象

    this和super不能出现在static的方法中 重写:方法名和参数都相同,子类覆盖父类 重载:方法名相同,参数...

  • Day08 Java面向对象——多态

    关键字super 1)super,相较于关键字this,可以修饰属性、方法、构造器2)super修饰属性、方法:在...

  • 2018-07-10

    JAVA重写的条件 条件: 子类继承父类,并重写父类的方法 1、 重写要求子类中的覆盖方法与父类中被覆盖的方法有...

网友评论

      本文标题:方法的重写(覆盖)与Super关键字

      本文链接:https://www.haomeiwen.com/subject/uinmkrtx.html