final关键字

最近感觉基础知识好多都生疏了,特意总结一下常用到的知识点。

final 关键字  表面含义'最终的'。

在java的使用有四种

第一种修饰类

被修饰的类不可以被继承。

例子:

Father.class

public class Father {

}
Son.class

public class Son extends Father {

}

这样写没有问题,当我把父类(Father.class)类型添加final时发现
public final class Father {

}
子类就报错了

错误信息为:

The type Son cannot subclass the final class Father


第二种修饰方法

被修饰的方法不可以被覆用(重写)

例子:

父类代码

public class Father {
	
	public void eat()
	{
		System.out.println("eating");
	}
}
子类代码

public class Son extends Father {
	@Override
	public void eat() {
		// TODO Auto-generated method stub
		super.eat();
	}

}
当我把父类的方法eat()之前加修饰final时,程序报错

报错信息为:

Multiple markers at this line
- Cannot override the final method from Father
- overrides com.example.bb.Father.eat

第三种修饰属性

被修饰的属性需要进行初始化或必须在构造方法中赋值

例子:

public class Father {
	public int age;
	
	public void eat()
	{
		System.out.println("eating");
	}
}

当把age属性加上修饰词final时,程序报错

报错信息是

The blank final field age may not have been initialized

修改方法有两个

public class Father {
	public final int age;
	
	public Father()
	{
		age = 20;//第一种方法在构造方法里赋值
	}
	
	public void eat()
	{
		System.out.println("eating");
	}
}
第二种方法

public class Father {
	public final int age = 10;//给属性初始化
	
	public void eat()
	{
		System.out.println("eating");
	}
}

第四种修饰变量

被修饰的变量又称为常量。只能赋值一次并且不可修改。

public class Father {
	public void eat()
	{
		final String foodname = "apple";
		System.out.println("eating"+foodname);
	}
}

当我再给变量foodname赋值时 程序报错

报错信息是:

The final local variable foodname cannot be assigned. It must be blank and not using a compound 
 assignment


好啦关于final的知识就介绍到这啦。

欢迎大神批评指正的。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值