一、关键字

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)以及抽象类和接口的更多相关文章

  1. Java基础-关键字-final

    在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和局部变量).下面就从这三个方面来了解一下final关键字的基本用法. 1.修饰类 当用final修饰一个类时,表明这个类不能被继 ...

  2. java 关键字final static native详解

    java 关键字native static final详解 一.final 根据程序上下文环境,Java关键字final有"这是无法改变的"或者"终态的"含义, ...

  3. JAVA基础复习与总结<四> 抽象类与接口

    抽象类(Abstract Class) 是一种模版模式.抽象类为所有子类提供了一个通用模版,子类可以在这个模版基础上进行扩展.通过抽象类,可以避免子类设计的随意性.通过抽象类,我们就可以做到严格限制子 ...

  4. JAVA基础部分复习(四、抽象类与接口)

    抽象类与接口的定义: package cn.review.day02; /** * 抽象类 * 定义: * 1.抽象类使用关键字abstract修饰 * 2.抽象方法必须定义在抽象类中,抽象方法没有方 ...

  5. java基础知识(6)---抽象类与接口

    抽象类: abstract抽象:不具体,看不明白.抽象类表象体现.在不断抽取过程中,将共性内容中的方法声明抽取,但是方法不一样,没有抽取,这时抽取到的方法,并不具体,需要被指定关键字abstract所 ...

  6. Java基础知识强化18:抽象类、接口的区别 和 选择性实现接口方法

    1.抽象类和接口的区别 抽象类里面可以有非抽象的方法(可以没有抽象方法),接口里只能有抽象方法. 抽象类中的抽象方法声明时不能有大括号,而接口中的所有方法都没有大括号.  抽象类(abstract c ...

  7. 零基础学习java------day9------多态,抽象类,接口

    1. 多态 1.1  概述: 某一个事务,在不同环境下表现出来的不同状态 如:中国人可以是人的类型,中国人 p = new  中国人():同时中国人也是人类的一份,也可以把中国人称为人类,人类  d  ...

  8. Java学习日记基础篇(六)—— 抽象类、接口、final

    抽象类 为什么要有抽象类? 因为父类方法有不确定性,我们在Animal中定义了一个方法,但是它会被子类的方法覆盖掉,我们就不知道这个方法原本是做什么的 public class test1 { pub ...

  9. java基础 -- 关键字final的用法

    用法一(修饰变量): Final变量能被显式地初始化并且只能初始化一次.被声明为final的对象的引用不能指向不同的对象.但是final对象里的数据可以被改变.也就是说final对象的引用不能改变,但 ...

随机推荐

  1. php中&&和and有什么区别

    PHP中的逻辑“与”运算有两种形式:AND 和 &&,同样“或”运算也有OR和||两种形式. 如果是单独两个表达式参加的运算,两种形式的结果完全相同,例如 $a AND $b和$a & ...

  2. DiskPart.exe and managing Virtual Hard Disks (VHDs) in Windows 7

    coreygoOctober 7, 2009 In Windows 7, new commands have been added in DiskPart to allow for the creat ...

  3. 一篇文章带你编写10种语言HelloWorld

    0,编程语言排行榜 计算机编程语言众多,世界上大概有600 多种编程语言,但是流行的也就几十种.我们来看下编程语言排行榜,下面介绍两种语言排行榜. Ⅰ TIOBE 指数 该指数每月更新一次,它监控了近 ...

  4. hexo-themes-setting

    hexo-themes-setting hexotheme Hexo 主题配置管理 一半有几种方式, 可以删除git 单独维护 也可以使用 hexo 推荐的方式进行维护 所有需要写在主题配置文件中的配 ...

  5. GDI+ 绘制砂岩含量图版

    图版是在工作中经常会使用到的工具,它能够大大提高我们日常工作效率.地质图版在地质工作中具有举足轻重的作用,不仅可以轻松判断岩性,也可以依据经验图版直接得到结果,十分方便. 本程序目的绘制出一个地质常用 ...

  6. 使用sys模块写一个软件安装进度条

    import sys,time for i in range(50): sys.stdout.write('#') sys.stdout.flush() #强制刷新将内存中的文件写一条,输出一条. t ...

  7. 网络传输 socket

    一.Socket语法及相关 前言:osi七层模型: 第七层:应用层.     各种应用程序协议,如HTTP,FTP,SMTP,POP3. 第六层:表示层.     信息的语法语义以及它们的关联,如加密 ...

  8. Autofac的切面编程实现

    *:first-child { margin-top: 0 !important; } .markdown-body>*:last-child { margin-bottom: 0 !impor ...

  9. java中异常的处理

    异常分为运行时的异常和检测异常: java提供了两种异常机制.一种是运行时异常(RuntimeExepction),一种是检查式异常(checked execption). 运行时的异常就是在java ...

  10. 题解 AT4867 【[ABC155D] Pairs】

    题目 两次二分 首先对ans进行二分,在\([-10^{18},10^{18}]\)之间 考虑怎么check 对于每个ans,枚举每个\(a_i\),二分查找有几个\(a_j\),使得\(a_i\ti ...