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("发消息");
    }
}

 

 

posted on 2013-04-22 16:02  bbooxx  阅读(325)  评论(0)    收藏  举报

导航