`
jsbylibo
  • 浏览: 11191 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

接口--基础

 
阅读更多

       有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果。

1.接口(interface)是抽象方法和常量值的定义的集合。

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

2.实现接口类:

  class SubClass implements InterfaceA{ }

  一个类可以实现多个接口,接口也可以继承其它接口。

3.接口的特点

  用interface来定义。

  接口中的所有成员变量都默认是由public static final修饰的。

  接口中的所有方法都默认是由public abstract修饰的。

  接口没有构造器。

  接口采用多继承机制。

4.实现接口的类中必须提供接口中所有方法的具体实现内容,方可实例化。否则,仍为抽象类。

  接口的主要用途就是被实现类实现。(面向接口编程)

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

  定义Java类的语法格式:先写extends,后写implements

package com.atguigu.java;
/*
 * 接口(interface)是与类并行的一个概念
 * 1.接口可以看做是一个特殊的抽象类。是常量与抽象方法的一个集合。
 * 2.接口是没有构造器的。
 * 3.接口定义就是一种功能。此功能可以被类所实现(implement).
 * 比如:class CC extends DD implements AA
 * 4.实现接口的类。必须要重写其中的所有的抽象方法,方可实例化。
 * 若没有重写所有的抽象方法,则此类仍为抽象类。
 * 5.类可以实现多个接口。----java中的继承是单继承的
 * 6.接口与接口之间也是继承的关系,而且可以实现多继承。
 * >5,6是描述的java中继承的特点。
 * 7.接口与具体的实现类之间也存在多态性
 */
public class TestInterface {

}
interface AA{
	//常量:所有的常量都是用public static final修饰,可写可不写
//	public static final int I = 11;
//	public static final boolean FLAG = false;
	int I = 11;
	boolean FLAG = false;
	//抽象方法:所有的都用public abstract修饰
	void method1();
	void method2();
}
abstract class BB implements AA{
	
}
class DD{
	
}
interface MM{
	void method3();
}
class CC extends DD implements AA,MM{
	public void method1() {
	}
	public void method2() {
	}
	public void method3() {
	}
}
//接口之间仍为继承关系!(多继承)
interface JJ extends MM{
	void method4();
}
class GG implements JJ,AA{

	@Override
	public void method4() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void method3() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void method1() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void method2() {
		// TODO Auto-generated method stub
		
	}
	
}

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics