java关键字及其作用

java关键字及其作用一、关键字总览:关键字含义abstract 表明类或者成员方法具有抽象属性assert 用来进行程序调试boolean 基本数据类型之一,布尔类型break 提前跳出一个块byte 基本数据类型之一,字节类型case 用在switch语句之中,表示其中的一个分支catch 用在异常处理中,用来捕捉异常char 基本数据类型之一,字符类型class 类const 保留关键字,没有具体含义continue 回到一个块的开始处default 默认,例如,用在switch语句中,表明一个默认的分支do 用在do-while循环结构中double 基本数据类型之一,双精度浮点数类型else 用在条件语句中,表明当条件不成立时的分支enum 枚举extends 表明一个类型是另一个类型的子类型,这里常见的类型有类和接口final 用来说明最终属性,表明一个类不能派生出子类,或者成员方法不能被覆盖,或者成员域的值不能被改变finally 用于处理异常情况,用来声明一个基本肯定会被执行到的语句块float 基本数据类型之一,单精度浮点数类型for 一种循环结构的引导词goto 保留关键字,没有具体含义if 条件语句的引导词implements 表明一个类实现了给定的接口import 表明要访问指定的类或包instanceof 用来测试一个对象是否是指定类型的实例对象int 基本数据类型之一,整数类型interface 接口long 基本数据类型之一,长整数类型native 用来声明一个方法是由与计算机相关的语言(如C/C++/FORTRAN 语言)实现的new 用来创建新实例对象package 包private 一种访问控制方式:私用模式protected 一种访问控制方式:保护模式public 一种访问控制方式:共用模式return 从成员方法中返回数据short 基本数据类型之一,短整数类型static 表明具有静态属性strictfp 用来声明FP_strict(单精度或双精度浮点数)表达式遵循IEEE 754算术规范super 表明当前对象的父类型的引用或者父类型的构造方法switch 分支语句结构的引导词synchronized 表明一段代码需要同步执行this 指向当前实例对象的引用throw 抛出一个异常throws 声明在当前定义的成员方法中所有需要抛出的异常transient 声明不用序列化的成员域try 尝试一个可能抛出异常的程序块void 声明当前成员方法没有返回值volatile 表明两个或者多个变量必须同步地发生变化while 用在循环结构中二、详细解释1. 访问控制1) private 私有的private 关键字是访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)。

只能在声明private(内部)类、方法或字段的类中引用这些类、方法或字段。

在类的外部或者对于子类而言,它们是不可见的。

所有类成员的默认访问范围都是package 访问,也就是说,除非存在特定的访问控制修饰符,否则,可以从同一个包中的任何类访问类成员。

2) protected 受保护的protected 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。

可以在声明protected 类、方法或字段的类、同一个包中的其他任何类以及任何子类(无论子类是在哪个包中声明的)中引用这些类、方法或字段。

所有类成员的默认访问范围都是package 访问,也就是说,除非存在特定的访问控制修饰符,否则,可以从同一个包中的任何类访问类成员。

3) public 公共的public 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。

可能只会在其他任何类或包中引用public 类、方法或字段。

所有类成员的默认访问范围都是package 访问,也就是说,除非存在特定的访问控制修饰符,否则,可以从同一个包中的任何类访问类成员。

2. 类、方法和变量修饰符1) abstract 声明抽象abstract关键字可以修改类或方法。

abstract类可以扩展(增加子类),但不能直接实例化。

abstract方法不在声明它的类中实现,但必须在某个子类中重写。

采用abstract方法的类本来就是抽象类,并且必须声明为abstract。

2) class类class 关键字用来声明新的Java类,该类是相关变量和/或方法的集合。

类是面向对象的程序设计方法的基本构造单位。

类通常代表某种实际实体,如几何形状或人。

类是对象的模板。

每个对象都是类的一个实例。

要使用类,通常使用new 操作符将类的对象实例化,然后调用类的方法来访问类的功能。

3) extends 继承、扩展extends 关键字用在class 或interface 声明中,用于指示所声明的类或接口是其名称后跟有extends 关键字的类或接口的子类。

子类继承父类的所有public 和protected 变量和方法。

子类可以重写父类的任何非final 方法。

一个类只能扩展一个其他类。

4) final 最终、不可改变final 关键字可以应用于类,以指示不能扩展该类(不能有子类)。

final 关键字可以应用于方法,以指示在子类中不能重写此方法。

一个类不能同时是abstract 又是final。

abstract 意味着必须扩展类,final 意味着不能扩展类。

一个方法不能同时是abstract 又是final。

abstract 意味着必须重写方法,final 意味着不能重写方法。

5) implements实现implements 关键字在class 声明中使用,以指示所声明的类提供了在implements 关键字后面的名称所指定的接口中所声明的所有方法的实现。

类必须提供在接口中所声明的所有方法的实现。

一个类可以实现多个接口。

6) interface 接口interface 关键字用来声明新的Java 接口,接口是方法的集合。

接口是Java 语言的一项强大功能。

任何类都可声明它实现一个或多个接口,这意味着它实现了在这些接口中所定义的所有方法。

实现了接口的任何类都必须提供在该接口中的所有方法的实现。

一个类可以实现多个接口。

7) native 本地native 关键字可以应用于方法,以指示该方法是用Java 以外的语言实现的。

8) new 新,创建new 关键字用于创建类的新实例。

new 关键字后面的参数必须是类名,并且类名的后面必须是一组构造方法参数(必须带括号)。

参数集合必须与类的构造方法的签名匹配。

= 左侧的变量的类型必须与要实例化的类或接口具有赋值兼容关系。

9) static 静态static 关键字可以应用于内部类(在另一个类中定义的类)、方法或字段(类的成员变量)。

通常,static 关键字意味着应用它的实体在声明该实体的类的任何特定实例外部可用。

static(内部)类可以被其他类实例化和引用(即使它是顶级类)。

在上面的示例中,另一个类中的代码可以实例化MyStaticClass 类,方法是用包含它的类名来限定其名称,如MyClass.MyStaticClass。

static 字段(类的成员变量)在类的所有实例中只存在一次。

可以从类的外部调用static 方法,而不用首先实例化该类。

这样的引用始终包括类名作为方法调用的限定符。

模式:public final static <type> varName = <value>; 通常用于声明可以在类的外部使用的类常量。

在引用这样的类常量时需要用类名加以限定。

在上面的示例中,另一个类可以用MyClass.MAX_OBJECTS 形式来引用MAX_OBJECTS 常量。

10) strictfp 严格,精准strictfp的意思是FP-strict,也就是说精确浮点的意思。

在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字时,Java的编译器以及运行环境在对浮点运算的表达式是采取一种近似于我行我素的行为来完成这些操作,以致于得到的结果往往无法令人满意。

而一旦使用了strictfp来声明一个类、接口或者方法时,那么所声明的范围内Java的编译器以及运行环境会完全依照浮点规范IEEE-754来执行。

因此如果想让浮点运算更加精确,而且不会因为不同的硬件平台所执行的结果不一致的话,那就请用关键字strictfp。

可以将一个类、接口以及方法声明为strictfp,但是不允许对接口中的方法以及构造函数声明strictfp关键字11) synchronized线程、同步synchronized 关键字可以应用于方法或语句块,并为一次只应由一个线程执行的关键代码段提供保护。

synchronized 关键字可防止代码的关键代码段一次被多个线程执行。

如果应用于静态方法,那么,当该方法一次由一个线程执行时,整个类将被锁定。

如果应用于实例方法,那么,当该方法一次由一个线程访问时,该实例将被锁定。

如果应用于对象或数组,当关联的代码块一次由一个线程执行时,对象或数组将被锁定。

12) transient 短暂transient 关键字可以应用于类的成员变量,以便指出该成员变量不应在包含它的类实例已序列化时被序列化。

当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。

Java的serialization提供了一种持久化对象实例的机制。

当持久化对象时,可能有一个特殊的对象数据成员,我们不想用serialization机制来保存它。

为了在一个特定对象的一个域上关闭serialization,可以在这个域前加上关键字transient。

transient是Java语言的关键字,用来表示一个域不是该对象串行化的一部分。

当一个对象被串行化的时候,transient型变量的值不包括在串行化的表示中,然而非transient型的变量是被包括进去的。

13) volatile 易失volatile 关键字用于表示可以被多个线程异步修改的成员变量。

注意:volatile 关键字在许多Java 虚拟机中都没有实现。

volatile 的目标用途是为了确保所有线程所看到的指定变量的值都是相同的。

Java 语言中的volatile 变量可以被看作是一种“程度较轻的synchronized”;与synchronized 块相比,volatile 变量所需的编码较少,并且运行时开销也较少,但是它所能实现的功能也仅是synchronized 的一部分。

3. 程序控制语句1) break 跳出,中断break 关键字用于提前退出for、while 或do 循环,或者在switch 语句中用来结束case 块。

合集下载

Java中static关键字的作用和用法详细介绍

Java中static关键字的作用和用法详细介绍

Java中static关键字的作⽤和⽤法详细介绍static表⽰“全局”或者“静态”的意思,⽤来修饰成员变量和成员⽅法,也可以形成静态static代码块,但是Java语⾔中没有全局变量的概念。

被static修饰的成员变量和成员⽅法独⽴于该类的任何对象。

也就是说,它不依赖类特定的实例,被类的所有实例共享。

只要这个类被加载,Java虚拟机就能根据类名在运⾏时数据区的⽅法区内定找到他们。

因此,static对象可以在它的任何对象创建之前访问,⽆需引⽤任何对象。

⽤public修饰的static成员变量和成员⽅法本质是全局变量和全局⽅法,当声明它类的对象市,不⽣成static变量的副本,⽽是类的所有实例共享同⼀个static变量。

static变量前可以有private修饰,表⽰这个变量可以在类的静态代码块中,或者类的其他静态成员⽅法中使⽤(当然也可以在⾮静态成员⽅法中使⽤–废话),但是不能在其他类中通过类名来直接引⽤,这⼀点很重要。

实际上你需要搞明⽩,private是访问权限限定,static表⽰不要实例化就可以使⽤,这样就容易理解多了。

static前⾯加上其它访问权限关键字的效果也以此类推。

static修饰的成员变量和成员⽅法习惯上称为静态变量和静态⽅法,可以直接通过类名来访问,访问语法为:类名.静态⽅法名(参数列表…)类名.静态变量名⽤static修饰的代码块表⽰静态代码块,当Java虚拟机(JVM)加载类时,就会执⾏该代码块(⽤处⾮常⼤,呵呵)。

1、static变量按照是否静态的对类成员变量进⾏分类可分两种:⼀种是被static修饰的变量,叫静态变量或类变量;另⼀种是没有被static修饰的变量,叫实例变量。

两者的区别是:对于静态变量在内存中只有⼀个拷贝(节省内存),JVM只为静态分配⼀次内存,在加载类的过程中完成静态变量的内存分配,可⽤类名直接访问(⽅便),当然也可以通过对象来访问(但是这是不推荐的)。

java 基本语言符号

java 基本语言符号

java 基本语言符号Java是一种流行的编程语言,它有一些基本的语言符号和关键字,用于构建程序。

以下是一些Java的基本语言符号和关键字:1. 分号(;):在Java中,分号用于表示语句的结束。

每个语句都应该以分号结尾。

2. 大括号({}):大括号用于定义代码块,例如类的主体、方法的主体等。

代码块包含在一对大括号中。

3. 圆括号(()):圆括号用于表示方法的参数列表、条件语句等。

方法的参数被放置在一对圆括号中。

4. 关键字:Java中有一些保留的关键字,用于表示特定的操作、语义等。

例如:`public`、`class`、`static`、`if`、`else`等。

5. 标识符:标识符是由开发人员定义的名称,用于表示变量、方法、类等。

标识符必须以字母、下划线(_)或美元符号($)开头,后面可以跟字母、数字、下划线和美元符号。

6. 注释:注释用于解释代码的目的、功能等,不会被编译器执行。

Java有两种类型的注释:单行注释(`//`)和多行注释(`/* */`)。

7. 运算符:Java支持各种运算符,如算术运算符(`+`、`-`、`*`、`/`等)、关系运算符(`==`、`!=`、`>`、`<`等)、逻辑运算符(`&&`、`||`、`!`等)等。

8. 数据类型:Java有基本数据类型(如`int`、`double`、`char`等)和引用数据类型(如类、接口、数组等)。

9. 修饰符:修饰符用于调整类、方法、变量等的访问权限和行为,如`public`、`private`、`static`等。

10. 类:Java中的类是面向对象编程的基本单元,用于定义对象的属性和行为。

11. 方法:方法是执行特定任务的代码块。

Java程序从`main`方法开始执行。

12. 对象:对象是类的实例,具有类定义的属性和方法。

这只是Java语言中的一些基本语言符号和关键字。

如果您想要更详细的信息,可以查阅Java 编程的相关资料或文档。

java中final关键字的用法

java中final关键字的用法

java中final关键字的用法
Java中的final关键字可以用于修饰类、方法和变量,其作用为:
1. final修饰的类不能被继承
final关键字可以用于修饰类,被修饰的类不能被继承。

这样做的目的是为了防止其他类对该类进行修改,保证该类的稳定性和安全性。

2. final修饰的方法不能被重写
final关键字可以用于修饰方法,被修饰的方法不能被子类重写。

这样做的目的是为了保证该方法的行为不会被修改,避免出现意外的错误。

3. final修饰的变量为常量
final关键字可以用于修饰变量,被修饰的变量为常量,一旦被赋值后就不能再次修改。

这样做的目的是为了保证该变量的值不会被修改,避免出现意外的错误。

4. final修饰的成员变量必须在声明时或构造函数中初始化
final关键字修饰的成员变量必须在声明时或构造函数中初始化,否则会编译错
误。

这样做的目的是为了保证该变量的值不会被修改,避免出现意外的错误。

5. final修饰的引用变量不能改变其引用的对象
final关键字修饰的引用变量不能改变其引用的对象,但是可以改变对象的属性值。

这样做的目的是为了保证该引用变量指向的对象不会被修改,避免出现意外的错误。

总之,final关键字的作用是为了保证程序的稳定性和安全性,避免出现意外的错误。

new的用法,java

new的用法,java

new的用法,java摘要:一、前言二、Java 中的“new”关键字介绍1.创建对象实例2.动态内存分配三、Java 中“new”的常见用法1.对象实例化2.数组实例化3.对象的初始化四、注意事项1.对象引用与对象实例的区别2.避免内存泄漏五、总结正文:一、前言在Java 编程语言中,“new”关键字是一个十分重要的关键字,它有许多用途。

本文将详细介绍Java 中“new”的用法及其注意事项。

二、Java 中的“new”关键字介绍1.创建对象实例:在Java 中,使用“new”关键字可以创建类的实例。

当创建一个对象实例时,Java 会自动调用该类的构造方法对对象进行初始化。

2.动态内存分配:在Java 中,内存分配是自动进行的。

使用“new”关键字可以动态地分配内存空间,为对象实例和数组分配内存。

三、Java 中“new”的常见用法1.对象实例化:在Java 中,可以使用“new”关键字创建对象实例。

例如:```MyClass obj = new MyClass();```2.数组实例化:在Java 中,可以使用“new”关键字创建数组实例。

例如:```MyClass[] arr = new MyClass[5];```3.对象的初始化:在Java 中,可以使用“new”关键字对对象进行初始化。

例如:```MyClass obj = new MyClass("Hello", 20);```四、注意事项1.对象引用与对象实例的区别:在Java 中,使用“new”关键字创建的对象实例只是一个内存地址,而对象引用则是一个指向该地址的指针。

因此,在创建对象实例后,需要使用对象引用访问该对象。

2.避免内存泄漏:在Java 中,使用“new”关键字创建的对象实例需要手动释放内存。

如果忘记释放内存,可能会导致内存泄漏。

因此,在使用“new”关键字时,需要注意避免内存泄漏问题。

五、总结本文详细介绍了Java 中“new”的用法,包括创建对象实例、动态内存分配、对象的初始化等。

说明java异常处理中用到的关键字及每个关键字的作用。

说明java异常处理中用到的关键字及每个关键字的作用。

在Java中,异常处理主要涉及到以下几个关键字:
1. `try`: 用于捕获可能抛出异常的代码块。

这些代码块通常是可能会抛出异常的代码,例如I/O操作、除零操作等。

2. `catch`: 用于捕获并处理特定类型的异常。

你可以有多个`catch`块来处理不同类型的异常。

3. `finally`: 无论是否发生异常,`finally`块中的代码都会执行。

通常用于资源的清理操作,如关闭文件、数据库连接等。

4. `throw`: 用于手动抛出异常。

当你在代码中遇到错误或异常情况时,可以使用`throw`关键字抛出异常。

5. `throws`: 用于声明方法可能抛出的异常。

在方法签名中使用`throws`关键字可以告知调用者该方法可能会抛出的异常类型。

6. `try-catch-finally` 语句: 这是Java中处理异常的主要结构,它结合了`try`, `catch`, 和 `finally` 关键字。

这些关键字在Java的异常处理机制中起着重要的作用,帮助开发者更有效地管理可能出现的错误和异常情况。

java中 static,final,transient,volatile,Volatile关键字的作用

java中 static,final,transient,volatile,Volatile关键字的作用
但是在以下两种场景,不应该使用这种优化方式:
缓存行非64字节宽的处理器(自行调整补充字节长度,原理一样)
共享变量不会被频繁的写。追加字节会导致CPU读取性能下降,如果共享变量写的频率很低,那么被锁的几率也很小,就没必要避免相互锁定了
Volatile无法保证原子性
volatile是一种“轻量级的锁”,它能保证锁的可见性,但不能保证锁的原子性。
由于自增操作是不具备原子性的,它包括读取变量的原始值、进行加1操作、写入工作内存。那么就是说自增操作的三个子操作可能会分割开执行,就有可能导致下面这种情况出现:
假如某个时刻变量inc的值为10,线程1对变量进行自增操作,线程1先读取了变量inc的原始值,然后线程1被阻塞了;然后线程2对变量进行自增操作,线程2也去读取变量inc的原始值,由于线程1只是对变量inc进行读取操作,而没有对变量进行修改操作,所以不会导致线程2的工作内存中缓存变量inc的缓存行无效,所以线程2会直接去主存读取inc的值,发现inc的值时10,然后进行加1操作,并把11写入工作内存,最后写入主存。
如下面的例子
public class Test {
public volatile int inc = 0;
public void increase() {
inc++;
}
public static void main(String[] args) {
追加字节优化Volatile性能
在某些情况下,通过将共享变量追加到64字节可以优化其使用性能。
在JDK 7 的并发包里,有一个队列集合类LinkedTransferQueue,它在使用volatile变量时,用一种追加字节的方式来优化队列出队和入队的性能。队里定义了两个共享结点,头结点和尾结点,都由使用了volatile的内部类定义,通过将两个共享结点的字节数增加到64字节来优化效率,具体分析如下:

java关键字大全(关键字)

关键字作用访问控制private私有的protected受保护的public公共的类、方法和变量修饰符abstract声明抽象class类extends继承、扩展final最终、不可改变implements实现interface接口native本地new新,创建static静态strictfp严格,精准synchronized线程、同步transient短暂volatile易失程序控制语句break跳出,中断continue继续return返回do运行while循环if如果else否则for循环instanceof实例switch观察case返回观察里的结果default默认错误处理try捕获异常catch处理异常throw抛出一个异常对象throws声明一个异常可能被抛出包相关import引入package包基本类型boolean布尔型byte字节型char字符型double双精度float浮点int整型long长整型short短整型null空TRUE真FALSE假变量引用super父类,超类this本类void无返回值保留字goto跳转const静态native本地详细说明private 关键字是访问控制修饰符,可以应用于类、方法或字段(在类中声明的变量)。

只能在声明 private(内部)类、方法或字段的类中引用这些类、方法或字段。

在类的外部protected 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。

可以在声明 protected 类、方法或字段的类、同一个包中的其他任何类以及任何子类(无public 关键字是可以应用于类、方法或字段(在类中声明的变量)的访问控制修饰符。

可能只会在其他任何类或包中引用 public 类、方法或字段。

所有类成员的默认访问范围都是abstract关键字可以修改类或方法。

abstract类可以扩展(增加子类),但不能直接实例化。

abstract方法不在声明它的类中实现,但必须在某个子类中重写。

final修饰基本类型和引用类型-概述说明以及解释

final修饰基本类型和引用类型-概述说明以及解释1.引言1.1 概述在Java编程语言中,我们经常会使用final关键字来修饰变量和方法。

在本篇文章中,我们将探讨final关键字在修饰基本类型和引用类型上的作用和影响。

final修饰符的主要作用是使变量或方法成为不可变的,也就是说它们的值或定义不能被修改。

对于基本类型和引用类型,final关键字的使用方式稍有不同,因此我们将分别讨论它们的不可变性和final关键字对它们的影响。

在接下来的章节中,我们将首先介绍基本类型的不可变性。

然后,我们将探讨final关键字的使用方法,包括如何声明和初始化final变量。

接着,我们将转向引用类型的不可变性,并讨论final关键字对引用类型的影响。

最后,我们将总结基本类型和引用类型的final修饰,总结各自的特点和应用场景。

同时,我们还会探讨未来可能的研究方向,以进一步深化我们对final修饰的理解。

通过本文的阅读,读者将能够全面了解final修饰基本类型和引用类型的特点和用法,进一步提升自己的Java编程能力。

让我们开始探索final 修饰的不可变性的奥秘吧!1.2文章结构1.2 文章结构本文将分为三个主要部分来探讨final关键字在修饰基本类型和引用类型时的使用和影响。

第一部分是引言,主要包括概述、文章结构和目的。

在概述中,我们将简要介绍final关键字以及其在Java中的作用。

文章结构将指导读者对文章的整体结构进行了解,以便更好地理解后续的内容。

而文章的目的则是明确我们撰写本文的目标,即探讨final修饰基本类型和引用类型的具体细节。

第二部分是正文,包含两个小节:final修饰基本类型和final修饰引用类型。

在2.1节中,我们将详细讨论final修饰基本类型的作用与特点。

首先,我们将解释基本类型的不可变性,即一旦被赋予了初值,它们将无法被修改。

接着,我们将探讨final关键字在修饰基本类型时的具体使用方法和语法规则。

Java volatile关键字的作用与使用场景

Java volatile关键字的作用与使用场景在Java中,volatile关键字被广泛应用于多线程编程中,用于保证变量在多线程环境下的可见性、有序性和禁止重排序操作。

本文将详细介绍volatile关键字的作用和适用场景。

作用1. 保证可见性当一个变量被volatile修饰时,任何线程修改了这个变量的值,其他线程可以立即看到修改后的值,即保证了可见性。

这是因为volatile修饰的变量会被存储在主内存中,而线程在对该变量进行读写操作时会直接从主内存中读取或写入,而不是从线程的本地内存中读取。

2. 禁止指令重排序volatile关键字还可以防止编译器对volatile变量操作的指令进行重排序优化。

这样可以确保被volatile修饰的变量的操作是按照程序中的顺序执行的,不会出现乱序执行的情况,从而保证了程序的正确性。

3. 保证有序性volatile关键字可以保证变量的读写操作是按照顺序进行的,不会出现指令重排序导致的意外情况。

这对于一些特定的场景十分重要,可以避免出现数据不一致的情况。

使用场景1. 状态标识在多线程环境下,有时需要使用volatile关键字来标识某个变量的处理状态,比如一个标识线程是否终止的变量。

通过volatile关键字,可以确保所有线程对该状态变量的修改是可见的,从而保证了线程之间的协作。

2. 声明为volatile的计数器在一些需要进行计数的场景中,可以考虑将计数器声明为volatile类型,以确保多个线程对计数器的操作能够及时地被其他线程感知到,避免出现计数错误的情况。

3. 双重检查锁定(Double Checked Locking)volatile关键字也常用于双重检查锁定模式,用于保证单例模式中的单例对象的初始化是线程安全的。

通过volatile关键字,可以确保在多线程环境下,只有一个实例对象被正确初始化。

总结Java中的volatile关键字在多线程编程中扮演着重要的角色,主要用于保证变量的可见性、有序性和禁止重排序操作。

java中extends与implements的区别

JAVA中extends 与implements有啥区别?1. 在类的声明中,通过关键字extends来创建一个类的子类。

一个类通过关键字implements 声明自己使用一个或者多个接口。

extends 是继承某个类, 继承之后可以使用父类的方法, 也可以重写父类的方法; implements 是实现多个接口, 接口的方法一般为空的, 必须重写才能使用2.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements,继承只能继承一个类,但implements可以实现多个接口,用逗号分开就行了比如class A extends B implements C,D,E===========================================================implements学了好久,今天终于明白了implements,其实很简单,看下面几个例子就ok啦~~接口的一些概念public inerface Runner{int ID = 1;void run ();}interface Animal extends Runner{void breathe ();}class Fish implements Animal{public void run (){System.out.println("fish is swimming");}public void breather(){System.out.println("fish is bubbing");}}abstract LandAnimal implements Animal{public void breather ()System.out.println("LandAnimal is breathing");}}class Student extends Person implements Runner{......public void run (){System.out.println("the student is running"); }......}interface Flyer{void fly ();}class Bird implements Runner , Flyer{public void run (){System.out.println("the bird is running");}public void fly (){System.out.println("the bird is flying");}}class TestFish{public static void main (String args[]){Fish f = new Fish();int j = 0;j = Runner.ID;j = f.ID;}接口实现的注意点:a.实现一个接口就是要实现该接口的所有的方法(抽象类除外)。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档