4. java基础之修饰符
其他修饰符
| public | 可以修饰属性、方法、构造方法、类 |
| protected | 可以修饰属性、方法、构造方法 |
| default | 可以修饰属性、方法、构造方法、类 |
| private | 可以修饰属性、方法、构造方法(如果修饰构造方法全为私有,则该类不支持被继承) |
| abstract | 可以修饰方法、类 |
| final | 可以修饰属性、方法、类 |
abstract
- abstract修饰类时,这个类只能声明引用、不能创建对象,可供子类继承(多态)
- abstract修饰方法,抽象方法没有实现({}),只有声明(abstract void method();),供子类去覆盖实现
总结:
- 如果一个类具有抽象方法,那么这个类就必须是抽象类,但抽象类不一定有抽象方法
- 如果一个类继承抽象类,但若这个类不希望成为抽象类,这个类就必须实现父亲类中所有的抽象方法
- 抽象类也拥有构造方法,供子类用super()调用
抽象方法可以使方法的声明和实现部分分离,声明提取到父类,实现留在子类,则更好的体现子类的共性放在父类的设计思想
final修饰符
1.final修饰方法:用final修饰的方法不能被子类覆盖,但可以被继承
2.final修饰类:用final修饰的类不能被继承
3.final修饰变量:
修饰局部变量:一旦赋值就不能更改(常量)
修饰成员变量:用final修饰的类的成员变量,没有默认值,可以通过初始化赋值一次。如果只声明而没有初始化赋值,就必须在所有构造方法里赋值或用static修饰的代码块接口interface
接口:接口是一个特殊的抽象类
注意:
- 接口中所有的方法都是公开抽象方法(public abstract 方法名,可以省略不写)
(在jdk8后接口中可以有default、static方法. jdk9后几口中可以有private方法) 变态不? - 接口中的属性都是公开静态常量(public static final 常量名 ,可以省略不写)
- 接口中没有构造方法,而抽象类中有构造方法
一个类实现一个接口,如果这个类不希望成为一个抽象类,则就必须实现接口中的所有方法
接口的特性:
- 接口之间可以定义多继承关系(接口之间的继承仍然是用extends,用“,”分隔)
一个类在继承另外一个类的同时,还能实现多个接口此时多个接口之间用“,”隔开
接口的作用:
- 实现多继承(注意不全是多继承,例如一个类不可能有两个方法名相同、参数表相同、放回值类型相同的两个方法,所有就要求继承多个父类时,父类如果有相同方法时,就会出错)
- 接口是一个标准(提高编程的弱耦合性)
定义接口就是定义一个标准,就把标准的实现者和标准的使用者分离,从而形成弱耦合关系
4. java基础之修饰符的更多相关文章
- java基础之修饰符和内部类
1.java修饰符 /* 修饰符: 权限修饰符:private,默认的,protected,public 状态修饰符:static,final 抽象修饰符:abstract 类: 权限修饰符:默认修饰 ...
- Java基础-访问修饰符
访问修饰符 default (即缺省,什么也不写): 在同一包内可见,不使用任何修饰符.使用对象:类.接口.变量.方法. private : 在同一类内可见.使用对象:变量.方法. 注意:不能修饰类( ...
- JAVA基础_修饰符
引言:Java的修饰符根据修饰的对象不同,分为类修饰符.方法修饰符.变量修饰符,其中每种修饰符又分为访问控制修饰符和非访问控制修饰符.访问控制存在的原因:a.让客户端程序员无法触及他们不应该触及的部分 ...
- java基础之 修饰符
一.访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. 1.default (即缺省,什么也不写): 在同一包内可见,不使用任何修 ...
- Java 基础 面向对象修饰符和自定义数据类型
不同修饰符使用细节 常用来修饰类.方法.变量的修饰符如下: public 权限修饰符,公共访问, 类,方法,成员变量 protected 权限修饰符,受保护访问, 方法,成员变量 默认什么也不写 也是 ...
- java中的修饰符和基本数据类型
1.java中的修饰符 java中的修饰符主要是用来对类资源进行一个权限控制,上面表格表现的很清晰,无需多言. 2.java中的基本数据类型 java中的数据类型分为引用类型和基本类型.基本数据类型有 ...
- Java中的 修饰符
java中的修饰符分为类修饰符,字段修饰符,方法修饰符. 根据功能的不同,主要分为以下几种. 1.权限访问修饰符 访问权限的控制常被称为具体实现的隐藏 把数据和方法包进类中,以及具体实现的隐藏,常共 ...
- 深入理解Java的protected修饰符
其实Java的protected修饰符,权限定义的很微妙,大致有以下几种: (1)protected控制符用于修饰方法和成员变量: (2)一个类的protected方法或成员变量,在包外是不能通过该类 ...
- java访问权限修饰符
作用域 当前类 同一package 子孙类 其他package public √ √ √ √ protected √ √ √ × friendly √ √ × × private √ × × × ja ...
随机推荐
- VisualVM分析与HelloWorld、springBoot项目
VisualVM分析与HelloWorld.springBoot项目 自从1995年第一个JDK版本JDKBeta发布,至今已经快25年,这些年来Java的框架日新月异,从最开始的Servlet阶段, ...
- HOOK的类型
- 一统江湖的大前端(8)- velocity.js 运动的姿势(上)
[摘要] 介绍CSS动画和JS动画的基本特点,以及轻量级动画库velocity.js的基本用法. 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园 ...
- 更适合Pythoner的标记语言Yaml学习总结
pythonic的标记语言 之前总结过一篇关于小数据存储文件大比拼,当时着重介绍了json,因为它在各类编程语言的通用性较强.但今天,我想给大家介绍一款更加适合pythoner使用的语言Yaml. Y ...
- vuex模块化。
项目结构: 1:在src下新建目录store,然后再建storemodule.js文件,把 上篇 store.js文件抽出来: import Vue from 'vue' import Vuex fr ...
- nmap扫描、信息收集(网安全实训第一天)
本期内容:网站信息收集.nmap扫描 1. 信息收集 2. nmap扫描1.信息收集 (1)确定目标 首先,我们确定攻击目标,在这里,我们随便找一个网站做测试,我以码云为例. (2)nslookup查 ...
- C#实现在foreach遍历中删除集合中的元素(方法总结)
目录 方法一:采用for循环,并且从尾到头遍历 方法二:使用递归 方法三:通过泛型类实现IEnumerator 在foreach中删除元素时,每一次删除都会导致集合的大小和元素索引值发生变化,从而导致 ...
- [修仙之路]React-Redux 金丹篇
作者:水涛追求技术,但又不失生活的乐趣,过自己想要的生活 React-Redux简介 React-Redux可以使你的React项目拥有全局数据,可以使多个React组件读取到全局数据并且组件中也可修 ...
- 聊一聊 webpack 中的 preloading 和 Prefetching
聊一聊 webpack 中的 preloading 和 Prefetching 提到 Preloading 和 Prefetching 就不得不先说一下代码分割,通过下面的例子我们来说明为什么需要代码 ...
- SpringBoot初探JSP页面可能遇到的坑
第一个坑就是依赖没有配了 网上很多依赖的配置代码 在pom.xml文件的dependencies添加以下依赖 <!-- servlet依赖 --> <dependency> & ...