java—final关键字

java—final关键字

 

final关键字用法

修饰类当用final去修饰一个类的时候,表示这个类不能被继承。注意:a. 被final修饰的类,final类中的成员变量可以根据自己的实际需要设计为fianl。b. final类中的成员方法都会被隐式的指定为final方法。说明:在自己设计一个类的时候,要想好这个类将来是否会被继承,如果可以被继承,则该类不能使用fianl修饰,在这里呢,一般来说工具类我们往往都会设计成为一个fianl类。在JDK中,被设计为final类的有String、System等。

2.修饰方法被final修饰的方法不能被重写。

注意:

a. 一个类的private方法会隐式的被指定为final方法。

b. 如果父类中有final修饰的方法,那么子类不能去重写。

3. 修饰成员变量

注意:

a. 必须要赋初始值,而且是只能初始化一次。

4. 修饰成员变量

注意:

a. 必须初始化值。

b. 被fianl修饰的成员变量赋值,有两种方式:1、直接赋值 2、全部在构造方法中赋初值。

c. 如果修饰的成员变量是基本类型,则表示这个变量的值不能改变。

d. 如果修饰的成员变量是一个引用类型,则是说这个引用的地址的值不能修改,但是这个引用所指向的对象里面的内容还是可以改变的。

 

总结:final关键字:

  • final可以修饰类,方法,变量。
  • final修饰的类不可以被继承。
  • final修饰的方法不可以被覆盖。
  • final修饰的变量是一个常量,只能被赋值一次。
  • 内部类只能访问被final修饰的局部变量。

测试:

(1).final修饰的类不可以被继承。

final class Fu{
	
}

class Zi extends Fu{
	
}

class FinalDemo{
	public static void main(String[] args){
		
	}
}

 

在这里插入图片描述

(2)final修饰的方法不可以被覆盖。

(3)final修饰的变量是一个常量,只能被赋值一次。

/*
	1.final修饰的类不能被继承
	2.final修饰的变量是一个常量,只能被赋值一次
	3.final修饰的方法不能被子类重写
*/


class Fu{
	final void talk(){
		System.out.println("爸爸会讲中文......");
	}
}

class Zi extends Fu{
	int age = 18;
	void show(){
		age = 13;
		System.out.println(age);
	}
	void talk(){
		System.out.println("儿子会讲中文......");
	}
}




class FinalDemo{
	public static void main(String[] args){
		
	}
}

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/114830.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 网易云音乐ncm格式如何转换为mp3_ncm文件转换mp3

    网易云音乐ncm格式如何转换为mp3_ncm文件转换mp3ncm格式就是网易云音乐会员身份下载的格式,套路和腾讯一样,会员过期了都听不了,需要你保持一直是会员;此篇文章是给大家安利的是一个在线批量转换ncm格式转为mp3的网站,使用起来非常简单。link:http://ncm.worthsee.com/1.准备好网易云ncm格式音频2.选择音乐,点击开始(shift多选)3.下载全部4….

    2022年9月27日
    3
  • 详解DOM对象中clientWidth、offsetWidth等属性

    详解DOM对象中clientWidth、offsetWidth等属性我们有时需要获得鼠标在某盒子中的位置,或者是随意移动某盒子的位置,在这些场景中我们可能经常需要用到clientWidth、offsetWidth、offsetTop啊等等。但是对于初学者来说(包括我),看到这些就头疼,因为感觉意思都相近,但作用却不同,所以今天天我就来捋一捋,搞清楚,后面好干活。好吧,废话不多说,开始吧。先上一下示例代码,下面要用到。HTML:…

    2022年7月22日
    7
  • var let和const的区别_JavaScript let

    var let和const的区别_JavaScript let1.let命令基本语法ES6新增了let命令,用来声明变量。它的用法类似于var,但是所声明的变量,只在let命令所在的代码块内有效。{leta=1varb=2console

    2022年7月31日
    7
  • WMI远程访问问题解决方法

    WMI远程访问问题解决方法

    2021年8月4日
    52
  • OleDbCommand更新数据的一些问题

    OleDbCommand更新数据的一些问题using(OleDbConnectionconnection1=newOleDbConnection(connectionString)){OleDbCommandcommand1=newOleDbCommand();command1.Connection=connection1;

    2022年5月12日
    40
  • kinect深度距离误差_TOF相机深度矫正基于Kinect v2

    kinect深度距离误差_TOF相机深度矫正基于Kinect v2之前的文章《answer:深度相机(TOF)矫正》由于时间匆忙,临时想了一种深度相机深度像素矫正方法,即固定高度逐像素矫正。该方法简单粗暴,效果并不理想,最近查阅了相关文献资料,基于之前的思路整理出一种现场可用的简单易行的矫正方法。二维平面畸变矫正使用张氏标定法对二维平面进行径向畸变矫正。深度像素矫正做图像处理的难点在于图像包括图像的噪声随机性很大,即使在同一位置拍摄也没有完全一样的图像,所以所设…

    2022年5月25日
    35

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号