JAVA方法的重写和final关键字

目录

什么是方法的重写

不能重写的方法 

1,被static修饰的方法不存在被重写

2,被private修饰的方法不能被重写

3,构造方法不能被重写

4,被final修饰的方法不能被重写

--------------------------------------------------------------------------------------

final关键字 

1,final修饰属性 

2, final修饰方法

3,final修饰类


什么是方法的重写

java中方法的重写只发生在继承关系中,指子类对父类中存在的方法的方法体进行重新编写。

子类中方法的名称、返回值类型、参数列表与父类相同,只有方法体中的代码不同

代码演示

​
public class Person{
    public void a(){
    }
}

public class Student extends Person{
    public void a(){
        System.out.println("");
    }
}

​

我们定义了一个person父类和一个学生子类,并让子类继承了父类,这时就可以在子类中重写父类中的方法,对父类方法的功能进行扩展

不能重写的方法 

 那么在父类中那些方法不能被重写呢?

1,被static修饰的方法不存在被重写

被static修饰的方法属于静态属性,静态的东西是和类一起出现的,而继承和重写是对象的事,所以static修饰的方法不存在重写这个概念

2,被private修饰的方法不能被重写

因为被private修饰的方法只能在本类中访问所以私有的方法不能被重写

3,构造方法不能被重写

因为构造方法的名字必须和类名完全相同,所以构造方法不能在子类中重写

4,被final修饰的方法不能被重写

final是Java中的关键字,意为最终的,我们下面就来看看什么是final关键字

--------------------------------------------------------------------------------------

final关键字 

 作为一个关键字final可以修饰属性,方法和类

1,final修饰属性 

被final修饰的属性名为常量,其值只能赋值一次并且不能被改变

常量在命名时通常采用全部大写 

​
public class Person{
    private final int MAX = 100000;
    
}

在上述代码中我们就定义了一个常量

2, final修饰方法

final修饰的方法名为最终方法,该方法不能被子类重写

代码演示

​
public class Person{
    public final void a(){
    }
}

public class Student extends Person{
    public void a(){
        System.out.println("");
    }
}

​

上述代码中父类的a方法是最终方法,所以在子类中重写方法会报错,这也解释了为什么被final修饰的方法不能被重写

3,final修饰类

被final修饰的类称为最终类,该类不能被继承没有子类(也就是太监类),但是最终类可以有父类

代码演示

​
public final class Person{
    public void a(){
    }
}

public class Student extends Person{
    public void a(){
        System.out.println("");
    }
}

​

上述代码会报错,因为person是最终类,所以student类不能继承它

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值