08JAVA基础关键字(final、static)以及抽象类和接口
一、关键字
1、final
| 修饰类 | 修饰变量 | 修饰成员方法 |
|---|---|---|
| 该类为最终类,不能被继承 | 该变量为常量 | 该成员方法不能被重写 |
2、static
(1)、生命周期
随着类的加载而加载
(2)、特点
被本类所有对象共享
使用方式:类名.静态成员
在实例化对象前被加载
(3)、成员特点
静态方法中只能使用静态成员
非静态方法中可以使用静态成员也可以使用非静态成员
静态方法中不能使用this、super(因为此时对象还没有创建,先进内存的不能方位后进内存的)
二、抽象类
1、概念
抽象类之子类的共性,在抽象类中申明某些行为,子类去实现
//例子
public abstract class Person{
public abstract speak();//无方法体,该方法需要子类去重写
}
2、特点
抽象类不能直接创建对象(可以通过多态进行创建)
抽象类中可以没有抽象方法,也可以有非抽象方法
有抽象方法的一定是抽象类
抽象类的子类要么重写抽象类的所有抽象方法,要么也是个抽象类
3、成员特点
| 成员 | 备注 |
|---|---|
| 成员变量 | 可以为变量或者常量 |
| 成员方法 | 可以为抽象方法或者非抽象方法 |
| 构造方法 | 抽象类中的构造方法是为了子类初始化的时候调用来完成抽象类的成员初始化 |
4、注意
abstract不能与private和static一起使用,因为后面两种不能重写
三、接口
1、概念
接口是为了扩展在事物共性以外的行为。
public interface Play{
public abstract void Basketball();//接口中只能定义抽象方法
}
//实现类
public class Person implements Play{
public void Basketball(){
...
}
}
2、接口特点
1、接口不能直接创建对象
2、接口和类是实现关系
3、接口的实现类要么重写接口的所有抽象方法,要么是一个抽象类
4、接口可以多继承
3、成员特点
| 成员 | 备注 |
|---|---|
| 成员变量 | 只能是常量 |
| 成员方法 | 只能是抽象方法 |
| 构造方法 | 没有构造方法,因为接口成员变量是常量,不需要初始化 |
四、抽象类和接口
1、相同点
都不可以被实例化
2、不同点
| 类型 | 区别 |
|---|---|
| 成员变量 | 抽象类:变量、常量 接口:常量 |
| 成员方法 | 抽象类:抽象、非抽象 接口:抽象方法 |
| 构造函数 | 抽象类:有。构造函数是子类初始化的时候调用初始化抽象类成员 接口:无。接口不需要初始化,因为成员变量都是常量 |
| 设计理念 | 抽象类:子类的共性(子类 is 抽象类) 接口:扩展(实现类 like 接口) |
五、关系
1、类和类
单继承、多层继承
2、类和接口
单实现、多实现、多层实现
3、接口和接口
单继承、多继承
六、权限修饰符
| 权限修饰符 | 同包同类 | 同包(子类和无关类) | 不同包(子类) | 不同包(无关类) |
|---|---|---|---|---|
| public | Y | Y | Y | Y |
| protected | Y | Y | Y | |
| 默认 | Y | Y | ||
| private | Y |
08JAVA基础关键字(final、static)以及抽象类和接口的更多相关文章
- Java基础-关键字-final
在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类 当用final修饰一个类时,表明这个类不能被继 ...
- java 关键字final static native详解
java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...
- JAVA基础复习与总结<四> 抽象类与接口
抽象类(Abstract Class) 是一种模版模式.抽象类为所有子类提供了一个通用模版,子类可以在这个模版基础上进行扩展.通过抽象类,可以避免子类设计的随意性.通过抽象类,我们就可以做到严格限制子 ...
- JAVA基础部分复习(四、抽象类与接口)
抽象类与接口的定义: package cn.review.day02; /** * 抽象类 * 定义: * 1.抽象类使用关键字abstract修饰 * 2.抽象方法必须定义在抽象类中,抽象方法没有方 ...
- java基础知识(6)---抽象类与接口
抽象类: abstract抽象:不具体,看不明白.抽象类表象体现.在不断抽取过程中,将共性内容中的方法声明抽取,但是方法不一样,没有抽取,这时抽取到的方法,并不具体,需要被指定关键字abstract所 ...
- Java基础知识强化18:抽象类、接口的区别 和 选择性实现接口方法
1.抽象类和接口的区别 抽象类里面可以有非抽象的方法(可以没有抽象方法),接口里只能有抽象方法. 抽象类中的抽象方法声明时不能有大括号,而接口中的所有方法都没有大括号. 抽象类(abstract c ...
- 零基础学习java------day9------多态,抽象类,接口
1. 多态 1.1 概述: 某一个事务,在不同环境下表现出来的不同状态 如:中国人可以是人的类型,中国人 p = new 中国人():同时中国人也是人类的一份,也可以把中国人称为人类,人类 d ...
- Java学习日记基础篇(六)—— 抽象类、接口、final
抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 public class test1 { pub ...
- java基础 -- 关键字final的用法
用法一(修饰变量): Final变量能被显式地初始化并且只能初始化一次.被声明为final的对象的引用不能指向不同的对象.但是final对象里的数据可以被改变.也就是说final对象的引用不能改变,但 ...
随机推荐
- 解决IE升级后必须以管理员运行的问题
很多网友可能都遇到过这样的问题,在ie升级后,无法打开,必须以管理员身份运行.今天我也遇到了这个问题.最终找到了解决办法. 1.Win + R 2.输入 regedit,定位到 HKEY_CURREN ...
- JS+Selenium+excel追加写入,使用python成功爬取京东任何商品~
之前一直是requests库做爬虫,这次尝试下使用selenium做爬虫,效率不高,但是却没有限制,文章是分别结合大牛的selenium爬虫以及excel追加写入操作而成,还有待优化,打算爬取更多信息 ...
- IIS WebDAV安全配置
本文为转载,原文地址:http://www.2cto.com/article/201307/228165.html IIS WebDAV安全配置 2013-07-16 12:13:00 作者:瞌睡龙收 ...
- Python带你做个愉快的"动森"玩家! (超简单代码)
最近Switch上的<动物森友会>可谓是炙手可热,它几乎算是任天堂版的<模拟人生>了,它的最新游戏<集合啦!动物森友会>(以下称“动森”)在发售后,取得了不错的媒体 ...
- Oracle把表记录恢复到指定时间节点
可以执行以下命令alter table 表名 enable row movement; --开启表行移动flashback table 表名 to timestamp to_timestamp('20 ...
- js 之 object
js之object 对象 ECMA-262 把对象(object)定义为“属性的无序集合,每个属性存放一个原始值.对象或函数”.严格来说,这意味着对象是无特定顺序的值的数组. 尽管 ECMAScrip ...
- 标准库 xml
xml处理模块 xml是实现不同语言或程序之间进行数据交换的协议,跟json差不多,但json使用起来更简单,不过,古时候,在json还没诞生的黑暗年代,大家只能选择用xml呀,至今很多传统公司如金融 ...
- 分布式锁(redis/mysql)
单台机器所能承载的量是有限的,用户的量级上万,基本上服务都会做分布式集群部署.很多时候,会遇到对同一资源的方法.这时候就需要锁,如果是单机版的,可以利用java等语言自带的并发同步处理.如果是多台机器 ...
- Win10美吱er吱er,Win10修改默认字体的方法
请参考以下步骤(需要修改注册表,修改前请先备份,以便在出现问题时能够及时恢复): 例:将系统字体改为宋体 1.Windows+r,输入:regedit 2.定位以下路径:HKEY_LOCAL_MACH ...
- VUE 后台管理系统权限控制
谈一谈VUE 后台管理系统权限控制 前端权限从本质上来讲, 就是控制视图层的展示,比如说是某个页面或者某个按钮,后端权限可以控制某个用户是否能够查询数据, 是否能够修改数据等操作,后端权限大部分是基于 ...