Javaoop_接口

Posted 雾里看云°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Javaoop_接口相关的知识,希望对你有一定的参考价值。

在软件中,接口同样是一种规范和标准,它们可以约束类的行为,

接口(Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合。接口通常以interface来声明。

一个类通过继承接口的方式,从而来继承接口的抽象方法。如果一个类只由抽象方法和全局常量组成,

那么这种情况下不会将其定义为一个抽象类。只会定义为一个接口,所以接口严格的来讲属于一个特殊的类,

而这个类里面只有抽象方法和全局常量,就连构造方法也没有。

接口示例--

public interface Eateble {   
public static final String MSG = "hello";//全局常量
    public abstract void print();//抽象方法
}

二、接口的使用

由于接口里面存在抽象方法,所以接口对象不能直接使用关键字new进行实例化。接口的使用原则如下:  

1.接口不能被实例化,接口是比抽象类抽象程度更高的类型。

2.一个接口最好只定义一个方法,防止接口污染

 3.接口不能有构造,抽象类可以有构造

 4.接口是一种数据类型 

5.接口可以多继承  

6.接口中所有的字段都必须是公有的静态常量

 7.接口所有方法都是公有的抽象方法

 8.一个类实现某个接口的话,必须重写他的所有的抽象方法。

 9.接口只是为实现它的类定义了规范,保证实现类的方法签名和接口中方法一致

10接口必须要有子类,但此时一个子类可以使用implements关键字实现多个接口;

 

接口和抽象类技术对比

01.抽象类中可以有普通方法,接口中不能
02.抽象类可以有构造,接口不能
03.抽象类中可以有普通字段,而接口中不行
04.抽象类不能实现多继承,接口可以
05.符合is a关系的选用抽象类,符合has a关系的选用接口
06.接口比抽象类抽象程度更高

 

----一个简单的示例

public abstract class Door {

    public abstract void oper();
    
    public abstract void close();
}
public interface IDoorbell {
    
    public void Bell();
}
public interface ILock {
    
    public void Lock();
}
public class FDDoor extends Door implements IDoorbell,ILock{

    @Override
    public void oper() {
        System.out.println("打开房门");
    }

    @Override
    public void close() {
        System.out.println("关闭房门");        
    }

    @Override
    public void Lock() {
        System.out.println("按下房门门铃");                
    }

    @Override
    public void Bell() {        
        System.out.println("锁上房屋门锁");        
    }

}

测试类--

public class MyMain {

    public static void main(String[] args) {
        FDDoor door=new FDDoor();
        door.oper();
        door.Lock();
        door.close();
        door.Bell();
    }

}

 










以上是关于Javaoop_接口的主要内容,如果未能解决你的问题,请参考以下文章

JAVA零基础小白学习教程之day08_接口&多态

尝试在空对象引用上调用接口方法“____”[重复]

从父片段到选项卡片段的接口侦听器不起作用

与另一个片段通信的片段接口

JavaOOP-异常处理

javaOOP 选择题