码迷,mamicode.com
首页 > 其他好文 > 详细

interface(接口)

时间:2016-12-11 07:54:55      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:image   输出   ges   com   抽象类   访问   art   src   xtend   

多个无关的类可以实现同一个接口.

一个类可以实现多个无关的接口.

与继承关系类似,接口与实现类之间存在多态性.

定义JAVA类的语法格式:

< modifier> class < name > [extends < superclass >]

[implements <interface>] [,<interface>* ]{

< declarations>*

}

 

接口是抽象方法和常量值定义的集合.

从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现.

接口举例:

public interface Runner{

   public static final int id = 1;   //用static静态变量. 

   public void start();

   public void run();

   public void stop();

}

 

在接口中所有的方法都是abstract.

 

 

 

接口的特性:

接口可以多重实现. 多重接口.一个类可以实现多个接口.

接口中默认的属性是public static final的.也只能是public static final的.在定义中可以不写puiblic static final.写不写都一样.

接口中只能定义抽象方法,而且  这些方法默认是public的.也只能是public的.

接口可以继承其他的接口,并添加新的属性和抽象方法.

 

 

接口举例:

技术分享

 

 接口的继承关系用implements(实现接口,等于实现接口中的抽象方法)

不要忘记接口中的方法都是抽象方法必须要进行重写.

  技术分享接上图

一个类可以实现多个接口.Teacher实现了painter和singer两个接口,重写两个接口的所有方法.

多个无关的类可以实现同一个接口. Teacher实现了singer接口,Student也实现了singer接口. 

技术分享

 

 s2指向teacher   p1等价于s2也指向teacher. 

但是根据多态/动态绑定.  p1把teacher当做painter来看.能够访问teacher中的eat和paint.

 

技术分享

f(singer s){

s.sing();

}

singer s是一个接口变量.只要实现了接口的任何对象都可以往里面传,例如上面S1 S2 都可以往里面传.

既然实现了接口,那么一定对接口进行了重写. 也就可以用sing这个重写过的方法.例如Student对sing进行了重写技术分享

f(Singer s){s.sing}是实现多态/动态绑定的语句.根据传入的接口变量动态绑定需要输出的sing.

输入s1会输出 Student is sing.   输入 s2 会输出teacher is sing.

接口和接口之间可以继承. 要注意需要重写的函数个数. 被继承的接口的函数也需要重写.

interface(接口)

标签:image   输出   ges   com   抽象类   访问   art   src   xtend   

原文地址:http://www.cnblogs.com/dwj-ngu/p/6158844.html

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