重写 面向对象

重写

重写 与 重载之间的区别:
都是方法的特性

重载:
同一个类中的多个方法
方法名相同
参数列表不同|方法签名不同

重写: 重写定义方法体
不同的两个类
继承关系|实现b关系
方法签名相同(方法名+参数列表)

场景:
在子类继承父类后,继承了一写功能方法,有些功能,功能的实现不满意,可以进行功能的重写(重新实现)

使用:
子类一旦重写方法,子类对象调用的时候,就会发生就近原则
子类对象调用功能时候,子类存在找子类,子类没有找父类
注意:
子类一旦重写父类中的方法,就是对父类方法进行屏蔽

检查是否为重写方法:
1.@Override 强制检查是否为重写方法,不是报错
2.工具中方法的左侧有提示

== <= >=满足的条件:
== : 方法签名完全相等
<= : 返回值类型为基本数据类型要求完全相等,如果为引用数据类型,子类方法返回值类型<=父类方法的返回值类型
>= : 权限修饰符: 子类方法的权限修饰符>=父类方法的权限修饰符

不能被重写的方法:
1.被private关键字修饰的方法不能被重写
1.被final关键字修饰的方法不能被重写
1.被static关键字修饰的方法不能被重写
当子类中出现于父类静态方法同名的方法时候,子类的同名方法也要是静态的,否则报错,但是不是重写方法

public class OverrideDemo01 {
    public static void main(String[] args) {
        SiCong si = new SiCong();
        System.out.println(si.name);
        si.words();
        si.life();
        si.test();


        //父类对象调用父类功能,爷爷类....
        new JianLin().words();
    }
}


//父类
class YeYe{
    public void test(){
        System.out.println("yeye类功能test");
    }
}
class JianLin extends YeYe{
    public String name = "王健林";
    //名言
    static JianLin words(){
        System.out.println("先定一个小目标,挣它一个亿!!!");
        return null;
    }

    public void life(){
        System.out.println("进口矿泉水洗脚!!!!");
    }

    //重写
    public void test(){
        System.out.println("JianLin类功能test");
    }
}

//子类
class SiCong extends JianLin{
    public String name = "王思聪";
    //名言  重写

    public static SiCong words(){
        System.out.println("我不在乎....!!!");
        return null;
    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值