接口(interface)

当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用另一种形式表示:那就是接口-----interface。

interface Demo{

void show1();   //接口中方法会自动用public abstract修饰

void show2();

}

对于接口中常见的成员:而且这些成员都有固定的修饰符

接口中可以定义常量,不能定义变量。接口中的属性都会自动用Public static final 修饰

例如: public static final int PI=3.14;

         int PI=3.14//在接口中,与上一个定义语句效果完全相同

         int PI; //这是错误的,在接口中必须指定初始值。



接口和抽象类一样,接口也不能实例化,注意:接口不能有构造方法(抽象方法中不能有方法体)

接口(具体)是实现多态(抽象)的一种方式

类与类时继承关系。类与接口是实现关系(implements)

java中不允许一个子类有多个父类,不允许多继承。但是,interface接口的作用就是解决了多继承的问题

接口的出现时避免了单继承的局限性

一个类可以实现多个接口

比如: class Demo implements A,Z{}   //这里省略了A和Z接口的定义

一个类在继承另一个类的同时,还可以实现多个接口

比如: class Demo extends Q implements A,Z{} //省略了类与类之间的继承关系以及A和Z接口的定义

接口与接口之间是继承关系,而且接口可以多继承。

package com.dt64.java;

public abstract class Door {
    public abstract void open();//开门
    public abstract void close();//关门

}

package com.dt64.java;

public class Fdm extends Door implements Lock{

    @Override
    public void open() {
        // TODO Auto-generated method stub
        System.out.println("打开防盗门。。。。。。");
    }

    @Override
    public void close() {
        // TODO Auto-generated method stub
        System.out.println("关闭防盗门。。。。。。");
    }

    @Override
    public void up() {
        // TODO Auto-generated method stub
        System.out.println("防盗门上锁。。。。。。");
    }

    @Override
    public void down() {
        // TODO Auto-generated method stub
        System.out.println("防盗门开锁。。。。。。");
    }
}


package com.dt64.java;

public interface Lock {
    
    public abstract void up();//开锁
    public abstract void down();//上锁
    
    //public void say();//默认的情况 public abstract
    //void play();

}


package com.dt64.java;

public class Test {

    /**
     * 测试 : 接口
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //Lock lock=new Lock(); 接口不能实例化
        Lock lock=new Fdm();
        lock.up();
        lock.down();
        Door dr=new Fdm();
        dr.open();
        dr.close();
        
    }

}


总结:1.接口是对外暴露的规则 2.接口是程序的功能扩展  3.接口的出现降低耦合性

面向接口编程:

接口与抽象类的区别:

相同点:1.代表系统的抽象层   2.都不能被实例化   3.都能包含抽象方法

不同点:1.在抽象类中可以为部分方法提供默认实现(抽象类中可以有普通方法),而接口只能包含抽象方法(不能有方法体)。

           2.抽象类便于复用,接口便于代码维护

           3.一个类只能继承一个直接的父类,但可以实现多个接口。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

brid_fly

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值