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)
上一篇 2021年9月29日 下午5:00
下一篇 2021年9月29日 下午6:00


相关推荐

  • 使用redis实现分布式锁

    使用redis实现分布式锁简介 当高并发访问某个接口的时候 如果这个接口访问的数据库中的资源 并且你的数据库事务级别是可重复读 Repeatablere 的话 确实是没有线程问题的 因为数据库锁的级别就够了 但是如果这个接口需要访问一个静态变量 静态代码块 全局缓存的中的资源或者 redis 中的资源的时候 就会出现线程安全的问题 案例 github 地址 https github com mzd123 myw

    2026年3月19日
    2
  • CentOS7 安装 kafka「建议收藏」

    CentOS7 安装 kafka「建议收藏」文章目录一、安装JDK二、安装zookeeper三、安装kafka一、安装JDKrpm-qa|grepjavarpm-qa|grepjdkrpm-qa|grepgcjrpm-qa|grepjava|xargsrpm-e–nodeps #卸载老版本yumlistjava-1.8*yuminstalljava-1.8.0-openjdk*-yjava-version二、安装zookeeper官方地址:https://ar

    2022年6月6日
    31
  • IaaS、PaaS、SaaS、DaaS的区别

    IaaS、PaaS、SaaS、DaaS的区别1 IaaSIaaS 是 Infrastructu 的缩写 意思是基础设施即服务 又云端公司把 IT 环境的基础设施建设好 然后直接对外出租硬件服务器或者虚拟机 消费者可以利用所有计算基础设施 包括处理 CPU 内存 存储 网络和其它基本的计算资源 用户能够部署和运行任意软件 包括操作系统和应用程序 消费者不管理或控制任何云计算基础设施 但能控制操作系统的选择 存储空间 部署的应用 也有可能获得有限制的网络组件 例如路由器 防火墙 负载均衡器等 的控制 如下图所示 云端公司一般都会有一

    2026年3月18日
    2
  • TCPIP协议

    TCPIP协议TCP/IP协议1.链路层:数据链路层或网络接口层(网络接口层和硬件层),通常包括操作系统中的设备驱动程序和计算机中对应的网络接口卡。处理与电缆(或其他任何传输媒介)的物理接口细节。转换IP层和网络接口层使用的地址。2.网络层:处理分组在网络中的活动,例如分组的选路。IP是一种网络层协议,提供的是一种不可靠的服务,它只是尽可能快地把分组从源结点送到目的结点,但是并不提供任何可靠性保证。…

    2022年6月25日
    48
  • 苹果新的编程语言 Swift 语言进阶(七)--枚举、结构、类

    苹果新的编程语言 Swift 语言进阶(七)--枚举、结构、类

    2021年11月15日
    49
  • windows 下shell 工具

    windows 下shell 工具CygwinTermin

    2026年3月18日
    2

发表回复

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

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