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

新手:接口

时间:2017-08-16 11:26:57      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:接口   style   声明   let   实例   inter   mat   int   静态   

// 本人只是java初学者,以下内容可能来自书上,可能是感想

 

java没有多重继承,只有单继承

java接口是一组抽象的行为,可以被混合到任何类中,从而给它添超类不支持的行为

java接口只包含抽象的方法定义和常量——既没有实例变量,也没有方法实现

 

实现和使用接口

public class AnimatedSign extends javax.swing.JApplet

  implements Runnable {

  //……

}

javax.swing.JApplet 是超类,但接口Runnable扩展了它实现的行为

由于接口只提供了抽象的定义,因此必须在自己的类中使用    同样的   特征标  来实现这些方法

(什么是特征标? 同样的又是哪几种?)

实现接口时,必须实现该接口中所有的方法,而不能有选择的实现其中的某些。通过实现接口,表明这个类支持整个接口。

类实现接口后,其子类将继承这些新方法<并可以覆盖或重载它们>,就像超类定义了这些方法一样。若类是从实现特定接口的超类派生而来的,而不必在类定义中包含关键字implements(感觉只要不加new的话,还是加上吧,避免误解)

 

实现多个接口

(类是单继承的)与类不同,可以在自己的类中包含任意数目的接口,类将实现这些接口中的所有行为。要在类中包含多个接口,只需要将名称用逗号隔开

public class AnimatedSign extends javax.swing.JApplet

  implements Runnable,  Observable  {

  //……

}

 

创建新的接口

interface Expandable  {

  //……

}

在接口定义内,可以有方法和变量

接口内的方法定义是公有和抽象的,可以显式的声明这一点,若没有包括这些限定符,它们将被自动的转换为公有的和抽象的。不能在接口内将方法声明为私有或保护的

接口还可以包含变量,但变量必须声明为公有、静态和final的,或者不使用限定符,将其隐式的声明为这样的

public interface Expandable {

  public static final int increment = 10;

  long capacity = 15000; // become public static and final

 

  public abstract void expand( ); //explicitly public and abstract

  void contract ( ); // effectively public and abstract

}

接口必须是公有的或包保护的?,就像类一样,但是如果声明接口时没有使用限定符public,接口不会自动将其方法转换为公有和抽象的,也不会将其常量转换为公有的。非公有接口的方法和常量也是非公有的,这些方法和常量只能被同一个包中的类和其他接口使用。

与类一样,接口也可以属于某个包。接口还可以导入其他包中的接口和类,就像类一样。

 

 

2017年8月16日10:15:56

 

新手:接口

标签:接口   style   声明   let   实例   inter   mat   int   静态   

原文地址:http://www.cnblogs.com/MindLonely/p/7371905.html

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