JAVA SE 022 接口、STATIC与FINAL关键字详解.doc
上传人:sy****28 上传时间:2024-09-10 格式:DOC 页数:3 大小:15KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

JAVA SE 022 接口、STATIC与FINAL关键字详解.doc

JAVASE022接口、STATIC与FINAL关键字详解.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

JavaSE022接口、static与final关键字详解一、接口1、接口的地位(层级)等同于class,接口中的所有方法都是抽象方法。2、在声明接口中的方法时,可以使用abstract关键字,也可以不使用。通常情况下,都会省略掉abstract关键字。3、可以将接口看作是一种特殊的抽象类(抽象类中可以有具体的方法,也可以有抽象方法,而接口中只能有抽象方法,不能有具体方法。)二、类与接口之间的关系1、类可以实现接口。实现使用关键字implements表示,代表了某个类实现了某个接口。2、一个类实现了某个接口,那么该类必须要实现接口中声明的所有方法。如果该类是个抽象类,那么就无须实现接口中的方法了。3、Java是单继承的,也就是说某个类只能有唯一一个父类;(除了Object类之外)。而一个类可以实现多个接口,多个接口之间用逗号分隔。(一个类可以继承一个父类,但是可以实现多个接口)三、多态总结所谓多态,就是父类型的引用可以指向子类型的对象,或者接口类型的引用可以指向实现该接口的类的实例。关于接口与实现接口的类之间的强制类型转换方式与父类和子类之间的强制类型转换方式完全一样。publicclassTest4{publicstaticvoidmain(String[]args){//接口类型的引用指向了实现这个接口的那个类的对象的实例,这是多态的表示形式。AAbb=newBB();bb.output();}}interfaceAA{publicvoidoutput();}classBBimplementsAA{publicvoidoutput(){System.out.println("BB");}publicclassTest4{publicstaticvoidmain(String[]args){BBbb=newBB();//向上类型转换AAaa=bb;aa.output();}}interfaceAA{publicvoidoutput();}classBBimplementsAA{publicvoidoutput(){System.out.println("BB");}}四、static关键字可以用于修饰属性,也可以用于修饰方法,还可以用于修饰类。1、static修饰属性publicclassStaticTest{publicstaticvoidmain(String[]args){MyStaticmyStatic=newMyStatic();MyStaticmyStatic2=newMyStatic();myStatic.a=10;System.out.println(myStatic2.a);}}classMyStatic{//static关键字修饰属性staticinta;}对于一个属性来说,如果这个属性被static关键字所修饰,那么表示这个类不管生成多少个对象,这些对象共同的使用同一个static的成员变量。2、static修饰成员变量时它的意思:表示这个类无论生成多少个实例或者说无论生成多少个对象,这些所有的实例或者对象共同的使用唯一的一份儿静态的成员变量。一个对象对该静态成员变量进行了修改,其他对象的该成员变量的值也会随之发生变化。解说:使用类里面的成员变量时,必须得new出来一个对象,通过对象来使用,如果一个成员变量是被static所修饰,我们就可以通过类的名字来去使用这个成员变量,而不必通过对象来去使用。因为这个a不属于任何的特定的对象,它是被所有对象所共同拥有的那么一个唯一的一份。3、如果一个成员变量是static的,那么我们可以通过类名.成员变量名的方式来使用它(java推荐使用这种方式)。为什么一个静态的成员变量,我们可以通过类的名字来去访问它,而对于一个非静态的成员变量,我们必须要生成对象才能访问它。这个道理很好理解。对于非静态的成员变量,每个对象里面有一份儿,假如说可以通过类的名字去访问它,那么我访问或修改的到底是哪一个对象(多次涉及改类.成员变量)里面的成员变量值进行修改呢,将无从确定。因为每个变量自己有一份儿,改了这个a到底是改了哪一个,不知道。而为什么通过类的名字可以去改静态的成员变量呢?因为所有的对象共享同一个静态的成员变量。改了一个,肯定只有一个,没有第二个可以改了,所以这样做是允许的。