重写

方法的重写

当子类定义了与弗雷方法名称相同、形参列表相同、返回值相同的方法时,就称为重写
范例:观察重写

class A {
    public void print() {
        System.out.println("A类中的方法!");
    }
}

class B extends A {
    public void print() {
        System.out.println("B类中的方法!");
    }
}

public class OverrideDemo {
    public static void main(String[] args) {
        B b = new B();
        b.print();  //B类中的方法!
    }
}

发生重写之后,会调用实例化子类中的已经被重写的方法。一个类可能回产生多个子类,哪个每个子类都可以有方法重写。
重写的使用原则(被动):
如果父类中的方法功能不足,但是子类又必须使用这个方法名称时,就需要使用重写。重写的方法控制权限不能比父类更严格。

范例:父类方法被重写,但是又要调用父类的方法,可以使用super关键字

class A {
    public void print() {
        System.out.println("A类中的方法!");
    }
}

class B extends A {
    public void print() {
        super.print();
        System.out.println("B类中的方法!");
    }
}

public class OverrideDemo {
    public static void main(String[] args) {
        B b = new B();
        b.print();  //B类中的方法!
    }
}

super 和 this 的区别

  1. "this.方法()" 会先查找本类中时候存在有调用的方法,如果存在直接调用,如果不存在则查找父类中是否具备此方法。
  2. "super.方法()"直接去调用父类中的方法。

面试题重载和重写的区别?

No区别重载重写
1英文单词OverloadingOverride
2发生范围发生在一个类里发生在继承关系中
3定义方法名称相同、参数的类型和个数不同方法名称相同、参数的类型、个数相同、方法的返回值相同
4权限限制没有权限限制被重写的方法控制权限不能比父类更加严格
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值