观心静

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

接口,与抽象类类似但是区别也很大,他们都是标签,用来提醒父类一定要实现的类里创建抽象方法。而接口类可以implements 多个接口,抽象类则只能父类只能继承一个抽象类,与抽象不同的是它不是继承组合关系,所以无法使用super关键字来调用接口里的方法,

接口的要求:

1.接口类必须使用interface关键字创建

2.接口类的父类必须使用implements来附属接口类

3.一个父类可以implements 多个接口(而抽象类的父类只能继承一个抽象类)

4.接口的所有量都是常量,接口类里会将量自动添加static final  关键字。

5.接口里的抽象方法在使用的时候必须需要在父类中重写

6.在Java1.8的新版本中,接口可以用default关键字在接口类中实现方法。而实现的方法不需要在父类中重写

7.接口中常量的调用可以直接用接口类调用也可以实例父类后调用,但是重写的抽象方法或者实现方法不行,必须new父类后实现。


package rom;

import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.WindowConstants;

public class Xamle_1 implements demo {
	public void demo1() {
		System.out.println("重写接口里的demo1");
		
	}
	public void demo1_2() {
		System.out.println("重写接口里的demo1_2");
		
	}
	
	 public static void main(String[] args) { 
		 Xamle_1 xamle_1 = new Xamle_1();
		 xamle_1.demo1(); //调用重写后的demo1方法
		 xamle_1.demo2(); //用new的实例类,在接口中直接调用关键字default修饰的已经实现的方法,此方法不需要重写
		 System.out.println("调用接口中的常量:"+demo.a);//只有常量可以不用new 一个实例类,直接用接口类调用
		 System.out.println("调用接口中的常量:"+xamle_1.b); //用 new的实例类调用常量b
		 
		 
			
        }				
	}
interface demo {
	public void demo1() ; //在接口中可以不写abstract关键字,因为接口中的抽象方法已经默认写了abstract
	abstract public void demo1_2(); //与上面对比
	default void demo2() {
		System.out.println("default 关键字在接口中实现方法");
		
	}
	public static final int a = 100; 
	public static int b = 100; //虽然没有写但是接口的常量会默认写上final,所以接口中的常量是无法修改的
	
	
	
}



	


posted on 2017-06-30 10:49  观心静  阅读(947)  评论(0编辑  收藏  举报