码迷,mamicode.com
首页 > 编程语言 > 详细

Javaoop_接口

时间:2018-03-04 17:13:26      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:通过   ace   key   over   最好   extends   blog   java   out   

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

接口(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_接口

标签:通过   ace   key   over   最好   extends   blog   java   out   

原文地址:https://www.cnblogs.com/matianpeng/p/8505034.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!