1、关键字可以修饰的说明:

关键字 属性(是否可修饰) 方法(是否可修饰) 类(是否可修饰)
static
final
abstract

2、关键字的意义:

关键字 意义 具体特性说明 被继承的话,会有什么后果?
static 表示属于该类。 1. 修饰变量:属于该类
2. 修饰方法:子类可覆盖为static,但不可覆盖为非static。
3. 修饰类:属于该类
见下面详细的补充说明
final 表示一旦赋值不能改变。 1. 修饰变量:一旦赋值不能改变;
2. 修饰方法:不能被其子类覆盖;
3. 修饰类:不能被继承;
不会有继承的问题,因为其代表不可变。
abstract 抽象,表示只是定义。 1. 修饰变量:不可以
2. 修饰方法:抽象方法没有实现,只能被子类继承并实现
3. 修饰类:抽象类不能生成对象实例,只能被子类继承并实例化子类。。
完全为了继承而生。
interface abstract 的特例 1.8之前:
- 变量默认是 public static final 类型;
- 方法默认是 public abstract 类型;
1.8 之后:
- 方法:可定义一个或多个静态(static)方法(就是一static方法而已,只是定义改变了)
- 方法:可用 default 修饰符定义(就是一普通方法而已,只是定义改变了)
?后续补充

注意:

注:不能放在一起的修饰符:final,private,static,因为 abstract 修饰的方法必须在子类中实现(覆盖),才能以多态方式调用,而以上修饰符在修饰方法时期子类都覆盖不了这个方法。
final 是不可以覆盖,private 不能够继承到子类也就不能覆盖,static 虽然可以被覆盖,但调用时会调用编译时类型的方法,因为调用的是父类的方法,而父类的方法又是抽象的方法,又不能够调用,所以上的修饰符不能放在一起。

3、static的继承和覆盖说明:

注:下面只是测试,实际不建议通过实例对象访问静态变量。编译期会提示不建议,但实际可执行。

被继承后:父为类A,子为类B 父(类A)属性(na)(static) 父(类A)方法(static)
子(类B)覆盖(static) A.na / a.na表示:父类中的变量;
B.na / b.na表示:子类中的变量;
如下图
子(类B)覆盖(非static) A.na / a.na表示:父类中的变量;
B.na:编译错误;
b.na:B 中的普通成员变量
如下图
子(类B)不覆盖 A.na / a.na / B.na / b.na 代表的是同一个变量

上面没有考虑另一种情况:子类对象赋值给父类对象的情况。此时:输出的还是父类中的内容(方法和变量都是如此)。

方法覆盖的测试如下图:

4、4 种访问修饰符:public、protected、default、private

5、参考:

  1. Java 中继承之后同名静态变量的问题分析 - 做一个快乐的人 - CSDN 博客
  2. Java 中 4 种访问修饰符 public/protected/default (friendly)/private - mingjie1212 的博客 - CSDN 博客
  3. Java 基础- final、static 和 abstract 区别和使用 - 余额不足 - CSDN 博客
  4. Java 8 特性 ——interface 中的 static 方法和 default 方法 - 钝悟需要时间的打磨,顿悟需要时间的积累 - CSDN 博客
  5. Java 8 新特性:接口的静态方法和默认方法 - Promise Sun special column - CSDN 博客
    注:说的最好的。

Java中的一些关键字:static,final,和abstract,interface,以及访问修饰符说明的更多相关文章

  1. Java_关键字、匿名对象、内部类、访问修饰符、代码块

    final关键字 概述: 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后, ...

  2. [JAVA关键字] static & final

    JAVA十分常见的关键字static & final 总的来说final表示常量,即不可更改的:而static表示静态,即全局的 1. final 类:不能被继承 2. final 方法:能被 ...

  3. java中的访问修饰符详解

    主要讲述一下java中protected的修饰控制范围. 在叙述protected修饰符使用之前,先来说一下java,可以发现,开发java程序是一个时时刻刻都在编写类.开发类.定义类的过程.类里面可 ...

  4. java:包、继承,访问修饰符

    包 包(package) 用于管理程序中的类,主要用于解决类的同名问题.包可以看出目录. 包的作用 [1] 防止命名冲突. [2] 允许类组成一个单元(模块),便于管理和维护 [3] 更好的保护类.属 ...

  5. c#中的访问修饰符Protected,privet ,public, internal,和internal protected

    Protected,privet ,public, internal,和internal protected的区别 Private修饰的,只能值类内部使用,外部不可以使用,子类不能直接访问,但可以通过 ...

  6. 深入理解Java中的volatile关键字

    在再有人问你Java内存模型是什么,就把这篇文章发给他中我们曾经介绍过,Java语言为了解决并发编程中存在的原子性.可见性和有序性问题,提供了一系列和并发处理相关的关键字,比如synchronized ...

  7. java中“53”个关键字(含2个保留字)

    1.java的关键字(keyword)有多少个? 51+2个保留字=53个关键字(java的关键字都是小写的!!) 2.java的保留字(reserve word)有多少个?问题:分别是什么? 2个保 ...

  8. Java中的关键字有哪些?「Java中53个关键字的意义及使用方法」

    Java中的关键字有哪些? 1)48个关键字:abstract.assert.boolean.break.byte.case.catch.char.class.continue.default.do. ...

  9. 关于Java中的transient关键字

    Java中的transient关键字是在序列化时候用的,如果用transient修饰变量,那么该变量不会被序列化. 下面的例子中创建了一个Student类,有三个成员变量:id,name,age.ag ...

随机推荐

  1. GitHub 基础搜索技巧

    一.GitHub基本信息栏 1.项目名称 2.项目简介 3.项目的README.md文档 ​ 项目的详细介绍 4.项目的最后更新时间 ​ 是否还有人维护等等... 二.搜索方式列举 1. 在name\ ...

  2. SIGAI机器学习第八集 数据降维1

    讲授数据降维原理,PCA的核心思想,计算投影矩阵,投影算法的完整流程,非线性降维技术,流行学习的概念,局部线性嵌入,拉普拉斯特征映射,局部保持投影,等距映射,实际应用 大纲: 数据降维问题PCA的思想 ...

  3. 通过无线网络使用ADB ( Connect to android with ADB over TCP )

    之前用USB数据线连接电脑和android手机,用adb操控手机. 后来电脑前面板的USB全坏了,键盘.鼠标.USBKkey.打印机都需USB,  少一个USB口,只得对不常用设备进行插拔切换. 于是 ...

  4. CF D. Ehab and the Expected XOR Problem 贪心+位运算

    题中只有两个条件:任意区间异或值不等于0或m. 如果只考虑区间异或值不等于 0,则任意两个前缀异或值不能相等. 而除了不能相等之外,还需保证不能出现任意两个前缀异或值不等于m. 即 $xor[i]$^ ...

  5. C++泛型编程-扩展

    类型做参数是C++模板实现的主要形式.由此实现了类模板-->模板类-->实例的过程 当然除此之外也可以参考bitset的实现方式,参数决定类型的做法. #include <iostr ...

  6. 自制操作系统-使用16进制文件显示 hello world

    1.下载qemu: https://www.cnblogs.com/sea-stream/p/10849382.html 2.制作软盘镜像 使用010editor,新建文件 图2 另保存为cherry ...

  7. Git生成本机SSH Key并添加到GitHub中

    1.检查电脑里是否有SSH Key 打开git Bash客户端 cd ~/.ssh ls 如果有就会输出下面内容 config id_rsa id_rsa.pub known_hosts 2.创建 邮 ...

  8. 用tecplot提取数据用于重构模型

    本方法还有诸多不完善的地方,转换代码转换格式之后还是需要自己手动分割txt文件,如果数据量太大,手动操作很是辛苦.现在只能得到点的数据,如何重构几何还是问题,UG貌似可以,欢迎交流. 首先在tecpl ...

  9. AOP 底层实现原理

    1.核心业务接口与实现 public interface IManager { void add(String item); } public class IManagerImpl implement ...

  10. 北大ACM - POJ试题分类

    1.入门水题 可用于练手与增强自信 POJ-1003POJ-1004 POJ-1005 POJ-1207 POJ-3299 POJ-2159 POJ-1083POJ-3094 2.初级 2.1. 基本 ...