19.接口

接口:初期理解,可以认为是一个特殊的抽象类
  当抽象类中的方法都是抽象的,该类可以通过接口的形式来表示
class用于定义类,interface用于定义接口

接口定义时,格式特点:
  1.接口中常见定义:常量,抽象方法
  2.接口中的成员都有固定修饰符。
常量:(public statci final)
方法:(public abstract) 可以不写,写全便于查看
记住:接口中的成员都是public

接口:是不可以创建对象的,因为有抽象方法。需要被子类实现。
子类对接口中的抽象方法全都覆盖后,才可以实例化。否则子类是一个抽象类。

接口可以被类多实现,也是对多继承不支持的转换形式,Java支持多实现。

public class Interface_09 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Test t=new Test();
		System.out.println(t.NUM);
		System.out.println(Test.NUM);
		System.out.println(Inter.NUM);
	}
}
interface Inter{
	public static final int NUM=3;
	
	public abstract void show();
}
interface InterA{
	public abstract void method();
}

class Demo1{
	public void function(){
		
	}
} 
class Test extends Demo1 implements Inter,InterA{  //多实现

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

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


//接口与接口之间是继承关系(层级继承)
interface A{
	void methodA();
}
interface B extends A{
	void methodB();
}
interface C extends B{
	void methodC();
}
class D implements C{

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

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

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

 

以下情况支持多继承

interface AA{
	void getA();
}
interface BB{
	void getB();
}
interface CC extends AA,BB{ //如果BB没有继承AA,CC可以多继承
	void getA();
	void getB();
}

以下情况不支持多继承

不支持多继承的原因:父类中方法有重复(返回值类型出现问题时),子类调用时出现问题。
接口不出现问题,多实现没有方法体,由子类任意定义。

interface AA{
	void getA();
	int show();
}
interface BB{
	void getB();
	boolean show();
}
interface CC extends AA,BB{ //如果BB没有继承AA,CC可以多继承
	void getA();
	void getB();
}

  

  

 

posted @ 2018-01-03 01:05  一日看尽长安花cxjj  阅读(131)  评论(0)    收藏  举报