终止继承:Final类和Final方法

一 Final类

当关键字Final用来修饰类时候,其含义就是不能派生新的子类了,也就是说任何其他类都不能继承用Final修饰的类。

那什么时候应该使用Final修饰类呢?

答:只有当需要确保类中的所有方法都不被重写时才应该建议最终类(Final),Final关键字将为这些方法提供安全,没有任何人能够重写Final类中的方法,因为不能继承。


下面用代码说明下Final类不能被继承:


package com.it;

public final  class Apples {
 public static void main(String[] args) {
    System.out.println("我不能被继承啊");
}
}

package com.it;

public class Apple extends Apples {


	
}
报错了:The type Apple cannot subclass the final class Apples 意思也就是说 不能继承这个Apples类。


二 Final方法

当用Final关键字修饰方法后,该方法在子类中将无法重写,只能继承。


下面代码说明这个问题:

可以被继承代码如下:

package com.it;

public   class Apples {

	public final void show(){
		System.out.println("我可以被继承但是不能被重写");
	}
	
}

package com.it;

public class Apple extends Apples {

public static void main(String[] args) {
	Apple a = new Apple();
	a.show();
}
	
}
输出的结果是:我可以被继承但是不能被重写

不能被重写的代码如下:

package com.it;

public class Apple extends Apples {

public void show(){
	System.out.println("重写Final方法");
}
	
}

报错了:Cannot override the final method from Apples 不能覆盖Apples里面的方法。 如图所示:

说明 Final的方法不能被继承。








评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值