Java中的接口_7
接口注意事项:
1、接口不能被实例化
2、接口中的所有方法,都不能有实体(抽象类了里面,可以有实体的方法,只要不是抽象方法),接口是更加抽象的抽象类
3、一个类可以实现多个接口,实现了几个接口,就必须要把这几个接口的方法都实现。
4、接口可以有变量,但变量不能用private和protected修饰
a、接口中的变量,本质上都是static的,而且都是final类型的,不管你加不加static修饰
b、在Java开发中,我们经常把常用的变量,定义在接口中,作为全局变量使用。访问形式:接口.变量名
c、一个接口不能继承其他的类,但可以继承别的接口
小结:接口是更加抽象的类,抽象类的方法可以有方法体,接口里的所有方法都没有方法体。
interface Usb { //接口中的变量是静态的,而且必须被初始化,而且不能更改,相当于是全局常量 //访问该变量的方式: 接口名.变量名 int a=1; //声明了两个方法 public void start(); public void stop(); } //创建一个类,并实现Usb接口 //当一个类实现了一个接口,则必须要实现该接口的所有方法 class Camera implements Usb{ public void start(){ System.out.println("照相机,开始工作"); } public void stop(){ System.out.println("照相机,停止工作"); } } class Phone implements Usb{ public void start(){ System.out.println("手机,开始工作"); } public void stop(){ System.out.println("手机,停止工作"); } } class Computer{ public void useUsb(Usb usb){ usb.start(); usb.stop(); } } public class Demo1 { public static void main(String[] args) { Computer computer = new Computer(); Camera camera= new Camera(); Phone phone = new Phone(); computer.useUsb(camera);//返回 照相机,开始工作 照相机,停止工作 computer.useUsb(phone);//返回 手机,开始工作 手机,停止工作 } }
一个类只能继承一个父类,但可以实现多个接口
interface Fish{ public void swimming(); } interface Bird{ public void fly(); } class Monkey{ String name; public void jump(){ System.out.println("跳"); } } class LittleMonkey extends Monkey implements Fish, Bird{ public void swimming() { System.out.println("小猴子式游泳"); } public void fly() { System.out.println("小猴子式飞翔"); } }
final
1、可以修饰变量或方法
2、当不希望父类的某个方法被覆盖时,可以用final方法关键字修饰
3、当不希望类的某个变量值被修改,可以用final方法关键字修饰,(如果一个变量是final,则改变量必须要赋初始值)
4、当不希望谋个类被其他类继承时,可以用final关键字来修饰该类
注意事项:
1、final修饰的变量又叫常量
2、final修饰的变量在定义时,必须被赋初始值,而且以后不能再赋值
什么时候用final
1、因为安全的考虑,类的某个方法不允许被修改
2、不想某个类被其他的类继承
3、某些变量值是固定不变的
final class Aaa{//该类不能被继承 final int a=0;//必须赋给初始值 //给方法用final修饰,则表示不可以被修改,不可以被覆盖 final public void sendMsg(){ System.out.println("发消息"); } }
浙公网安备 33010602011771号