Java 重写(Override)

重写(Override)和重载(Overload)一定要分的开  ,重写是发生在父子俩重载是放生在一个类身上,

重写的细节有很多:
1.子类重写的父类的一个方法那方法明必须一样,

class A{
    public  void  show(){
        
    }
}
class B extends  A{
    @Override
    public void show() {
        
    }
}

2。参数的个数和顺序也必须一样,如果不一样就构不成重写

class A{
    public  void  show(int num , String str){
    }
}
class B extends  A{
    public void show(int num,String str) {
    }
}

3.子类的这个方法返回可以和父类这个方法的返回值一样,或者是父类方法返回值的子类,如果子类的返回类型不是父类的返回类型也不是子类,方法名和参数都一样的就是报错,

class A{
//    我们创建一个动物类父类子类位狗
//    返回动物
    public  Animal  show(int num , String str){
        return null;
    }
}
class B extends  A{
//    返回狗实动物的子类
    public Dog show(int num,String str) {
        return null;
    }
}
class Animal{
}
class Dog extends  Animal{
}

4.访问修饰符也必须大于父类的访问修饰符,如:父类的修饰符是 protected,子类的是public就没事,如果父类的是public ,子类是protected的就会报错

class A{

    protected   void  show(int num , String str){
    }
}
class B extends  A{

    public     void show(int num,String str) {
        
    }
}

5.静态方法不可以重写,因为静态方法是属于类的不是属于对象

 public static void main(String[] args) {
             A a = new B();
             a.show();

    }
class A{
    public   static void  show(){
        System.out.println("我是A类");
    }
}
class B extends  A{
    public static    void show() {
        System.out.println("我是B类");
    }
}

main方法会打印:我是A类

 @Override

如果再子类方法上面添加一个Override,就表示这个方法是重写父类的方法,如果这方法和重写的要求不一样就会报错,没写Override标志的,个方面和重写大部分要求都一样可以回被判定为是重写,

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值