java 接口

基本介绍:

接口就是给出一些没有实现的东西,封装在一起,到某个类要使用的时候,再根据具体情况把这些方法写出来

interface 接口名{
//属性
//方法(1.抽象方法2.默认实现方法3.静态方法)


class 类名 implements 接口{
自己的属性
自己的方法
必须实现的抽象方法

jdk7.0前 接口的所有的方法都没有方法体,即都是抽象方法

jdk8.0后 接口可以实现有静态方法,默认方法,也就是说接口中可以有方法的具体实现

注意:

1.接口不能被实例化

2.接口中的所有方法是pubic 方法,接口中的抽象方法,可以不用abstract修饰

3.一个普通的类实现接口,必须将接口的所有的方法都实现

4.抽象类实现接口,可以不用实现接口的方法

5.一个类中可以有多个接口

6.接口中的属性,只能是final,而且是public static final 修饰符 比如:

int a=1; 实际上为public static final int =1;

7.接口中的属性访问形式:接口名.属性名

8.接口不能继承其他类,但是可以继承多个别的接口

interface A extend B,C{}

9.接口的修饰符只能是public 和默认,这一点和类的修饰符是一样的

继承和接口的区别:

当子类继承了父类,就自动拥有了父类的功能

如果子类需要扩展功能,可以通过接口的方式进行扩展

可以理解为实现接口是对java单继承的一种补充

 继承的多态

public static void main(String[] args) {
        //接口类型的变量 A 可以指向 实现了A接口类的对象实例
        A c1=new c();

    }
}
interface A{ }
class c implements A{

}

多态的数组

案例 

给Usb 数组中,存放Phone和camary对象,Phone类中还有一个特有的方法call()

请遍历Usb数组,如果是Phone对象,除了要调用Usb接口的第一方法外,还需调用Phone中的特有方法call;

    public static void main(String[] args) {
//        多态数组 -》 接口类型数组
        Usb[] usbshu =new Usb[2];
        usbshu[0]= new phone();
        usbshu[1]=new camary();
        for (int i = 0; i < usbshu.length; i++) {
            usbshu[i].work();//动态绑定机制
            //我们需要进行类型的向下转型
            if(usbshu[i] instanceof phone){//判断它的运行类型是否为phone
                ((phone) usbshu[i]).call();
            }
        }
    }
}
interface Usb{
    void work();
}
class phone implements Usb{
    @Override
    public void work() {
        System.out.println("phone正在工作中");
    }
    public void call(){
        System.out.println("phone正在打电话中");
    }
}
class camary implements Usb{
    @Override
    public void work() {
        System.out.println("camary正在工作中");
    }
}

 

接口多态传递机制

 public static void main(String[] args) {
//   接口类型的变量可以指向,实现了接口的类的对象实例
    IG ig=new teacher();
    //如果IG 继承了IH接口,而teacher 类实现了IG接口
        //那么,实际上就相当于teacher类也继承了IH接口
        //这也就是所谓的接口多态传递现象
    }


}
interface IH{
    void hi();
}
interface IG extends IH{
}
class teacher implements IG{
    @Override
    public void hi() {

    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值