java继承-final关键词用法
final关键字特点:
1.可以用来修饰变量、方法、类。
2.修饰的变量是一个常量。一旦被赋值就不能被修改(常量一般都和static关键字配合使用)
3.修饰类代表此类不能被继承4.修饰方法代表次方法不能被重写
public class finalDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
final DemoA dA = new DemoA();
DemoB dB = new DemoB();
//dA = new DemoA;如果添加了final修饰,则dA不可以再修改dA的引用
dA.TestA();
dB.TestA();
}
}
/*final*/ class DemoA{//如果添加了final,则DemoB不可以继承DemoA
public final int a = 1;
public int b =2;
public /*final*/ void TestA() {//如果添加了final,则DemoB里的TestA不可以重写DemoA里的TestA
//a++;错误!因为final修饰的变量a即为常量,不可以被修改
System.out.println(a);
}
public void TestB() {
System.out.println(b);
}
}
class DemoB extends DemoA{
public int a = 1;
public int b =2;
public void TestA() {
System.out.println(a);
}
public void TestB() {
System.out.println(b);
}
}
java继承-final关键词用法的更多相关文章
- Java中final的用法总结
1. 修饰基础数据成员的final 这是final的主要用途,其含义相当于C/C++的const,即该成员被修饰为常量,意味着不可修改.如java.lang.Math类中的PI和E是f ...
- 【Java学习笔记之二十】final关键字在Java继承中的用法小结
谈到final关键字,想必很多人都不陌生,在使用匿名内部类的时候可能会经常用到final关键字.另外,Java中的String类就是一个final类,那么今天我们就来了解final这个关键字的用法. ...
- 【Java学习笔记之二十二】解析接口在Java继承中的用法及实例分析
一.定义 Java接口(Interface),是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为( ...
- java中final的用法
final从字面翻译来看,有最后的,最终的; 决定性的; 不可更改的等含义,在java里面主要还是“不可改变的”这层意思,不可改变或者不想改变的final主要用在类.方法.数据这三个方面. 一.f ...
- 【Java学习笔记之二十一】抽象类在Java继承中的用法小结
一.抽象类的基本概念 普通类是一个完善的功能类,可以直接产生实例化对象,并且在普通类中可以包含有构造方法.普通方法.static方法.常量和变量等内容.而抽象类是指在普通类的结构里面增加抽象方法的组成 ...
- 【Java学习笔记之十九】super在Java继承中的用法小结
1)有人写了个很好的初始化属性的构造函数,而你仅仅想要在其中添加另一些自己新建属性的初始化,这样在一个构造函数中调用另外一个构造函数,可以避免重复的代码量,减少工作量: 2)在一个构造函数中调用另外一 ...
- java 中 final 的用法
/* final可以修饰类,方法,变量 特点: final可以修饰类,该类不能被继承. final可以修饰方法,该方法不能被重写.(覆盖,复写) final可以修饰变量,该变量不能被重新赋值.因为这个 ...
- java继承-super的用法
继承的特点: 1.子类继承了父类的成员 2.具有层次结构 继承的优点: 1.代码重用 2.父类字段和方法可用于子类 3.从抽象到具体形成类的继承体系 4.可以轻松自定义子类 this:当前对象的引用 ...
- 解析Java中final关键字的各种用法
首先,我们可以从字面上理解一下final这个英文单词的中文含义:“最后的,最终的; 决定性的; 不可更改的:”.显然,final关键词如果用中文来解释,“不可更改的”更为合适.当你在编写程序,可能会遇 ...
随机推荐
- ++i? i++? i+=1? i=i+1? 何必纠结?
前言 今天在牛客上看面经,看到一个问题:num++; num+=1; num = num +1; 哪个效率最高? 自从学习C语言开始,我就在纠结for语言应该写i++,还是++i,其实这个问题,可以通 ...
- vue面试题总汇
active-class是哪个组件的属性? vue-router模块的router-link组件. 嵌套路由怎么定义? 在实际项目中我们会碰到多层嵌套的组件组合而成,但是我们如何实现嵌套路由呢?因此我 ...
- s:iterator的用法
truts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等以下几个简单的demo: s:iterator 标签有3个属性: value:被迭代的集合 id :指定 ...
- redis使用及配置之缓存详解
redis使用及配置之缓存详解 1.Redis的介绍 Redis是一个Key-Value存储系统.它支持存储的value类型有:string(字符串),list(链表), set(无序集合),zset ...
- spring与dwr整合实现js直接使用java代码
此文章是基于 搭建Jquery+SpringMVC+Spring+Hibernate+MySQL平台 一. jar包介绍 1. dwr-3.0.1.jar,支持 spring 4.3.4 的最低版本 ...
- VC+++ 操作word
最近完成了一个使用VC++ 操作word生成扫描报告的功能,在这里将过程记录下来,开发环境为visual studio 2008 导入接口 首先在创建的MFC项目中引入word相关组件 右键点击 项目 ...
- mybatis-generator 动态生成实体对象、dao 以及相关的xml映射文件
.新建maven空项目 2.修改pom.xml文件 <?xml version="1.0" encoding="UTF-8"?> <proje ...
- System.out.println与System.err.println的区别
public class Test2 { static { System.out.println("1"); } { System.out.println("2" ...
- mac关闭渐隐和弹出动画效果
苹果系统应用程序的窗口和对话框每次使用的时候都有华丽的特效,但是如果你感觉这种特效显得有点慢(MacGG闲的蛋疼),那该如何取消掉他呢? 方法很简单,打开"终端"(Finder-& ...
- CentOS7运维管理笔记(12)----修改主机名
CentOS修改主机名 CentOS7和CentOS6.5 修改主机名的方法略有不同. 通过 hostname 命令可以查看当前的主机名. 1. 临时修改主机名 通过 'hostname 新的主机名' ...