JAVA基础培训(8),认识接口

这讲我们来重点熟悉接口的使用,包括接口的声明,继承,属性的定义以及类的实现 等。

最终的目录结构

先看相关的代码

lession8/Lession8.java

package lession8;import lession8.otherpackage.InterfaceOtherPackagePublic;/*** 老紫竹JAVA基础培训(8),认识接口。*** @**/public class Lession8 {  public static void main(String[] args) {   // 可以直接使用接口的属性   System.out.println(Test1.Number1);   // final类型是不能修改的   // Test1.Number2 ++;  }}/*** 实现本package的接口** @**/class Test1 implements InterfaceSamePackage {  // 接口的方法必须是public的  // 虽然那面没写,但也是,这是规定  // 实现的方法也必须是public的  // 不写或者protected或者private都是错误的  @Override  public void testA() {  }  @Override  public void testB() {  }}/*** 实现其它package的接口。* 对接口里面的方法实现同样必须是public的。** @**/class Test2 implements InterfaceOtherPackagePublic {}class Test3 implements InterfaceSamePackageAbstract {  @Override  public void testA() {  }}/*** 类可以实现多个接口.* 即使那些接口之间已经存在继承关系也没问题。** @**/class Test4 implements InterfaceOtherPackagePublic,   InterfaceSamePackageAbstract, InterfaceSamePackageExtends {  // 你要实现的方法是这些接口要求实现的总和  // 也就是每个接口里的方法你都必须实现  // #######################  // #### 注意,############  // #######################  // InterfaceSamePackage 和 InterfaceSamePackageAbstract  // 我们有2个接口定义了各自的方法,但名字和参数(类型和顺序)完全相同  // 我们的实现只需要有一个就行了  // 如果2个接口要实现的功能不一样,强烈建议不要用相同的名字和参数  // 这属于设计问题,很严重的设计问题。  @Override  public void testA() {  }  @Override  public void testB() {  }}/*** 如果你这个类只能实现所有接口的部分功能,可以用abstract类。** @**/abstract class Test5 implements InterfaceOtherPackagePublic,   InterfaceSamePackageAbstract, InterfaceSamePackageExtends {  @Override  public void testB() {  }}

lession8/InterfaceSamePackage.java

package lession8;

/**

* 接口例子A.

*

* @

*

*/

public interface InterfaceSamePackage {

// 接口里面声明的属性

// 默认必须是 public static final 的

// 无论你怎么写,结果都一样

// 不能使用 protected 修饰

// 以下几种写法无任何区别,结果都是一样的。

public static final int Number = 0;

int Number1 = 1;

public int Number2 = 2;

public final int Number3 = 3;

final int Number4 = 4;

static int Number5 = 5;

// 对象类型必须初始化。

public static final String name = “xxxxxx”;

void testA();

public void testB();

}

lession8/InterfaceSamePackageAbstract.java

package lession8;/*** 其它package的default类型的接口。** @**/abstract interface InterfaceSamePackageAbstract {  public void testA();}

lession8/otherpackage/InterfaceOtherPackagePublic.java

package lession8.otherpackage;/*** 其它package的public类型的接口。** @**/public interface InterfaceOtherPackagePublic {}

lession8/otherpackage/InterfaceOtherPackageDefault.java

package lession8.otherpackage;/*** 其它package的默认类型的接口。** @**/interface InterfaceOtherPackageDe 车到山前必有路,没路可以先开路,开路就得有乐观,

JAVA基础培训(8),认识接口

相关文章:

你感兴趣的文章:

标签云: