标签:
一、概念:
接口定义了某一批类所需要遵守的规范,接口只规定类里必须实现的某些方式,但不关注类的内部数据和方法的具体实现;
二、定义:
使用interface关键字定义;
三、语法:
[修饰符] interface 接口名 [extends 父接口1, extends 父接口2]{
零个到多个常量定义,,,
零个到多个抽象方法的定义、、、、
}
接口以及接口中的方法默认都是抽象的,如果没写abstract,系统会自动加上;
接口:public abstract interface
常量:public static final
方法:public abstract
注意:类只能继承一个父类,接口可以继承多个父接口,所以可以使用接口来弥补类的不足;
接口还经常与匿名内部类配合使用;
四、实例:
1 package com.inter.demo; 2 3 public class TelPhone { 4 5 //打电话 6 public void call(){ 7 8 } 9 10 //发短信 11 public void message(){ 12 13 } 14 15 }
1 package com.inter.demo; 2 3 /** 4 * 非智能手机类 5 * 6 */ 7 public class CellPhone extends TelPhone { 8 9 //打电话 10 @Override 11 public void call() { 12 13 System.out.println("非智能手机通过键盘打电话!"); 14 15 } 16 17 /** 18 * 发短信 19 */ 20 @Override 21 public void message() { 22 23 System.out.println("非智能手机通过键盘发短信!"); 24 25 } 26 27 }
1 package com.inter.demo; 2 3 /** 4 * 游戏接口 5 * 6 */ 7 public interface IPlayGame { 8 9 public void playGame(); 10 11 }
1 package com.inter.demo; 2 3 /** 4 * 智能手机类 5 * 6 */ 7 public class SmartPhone extends TelPhone implements IPlayGame{ 8 9 /** 10 * 打电话 11 */ 12 @Override 13 public void call() { 14 15 System.out.println("智能手机通过语音打电话!"); 16 17 } 18 19 /** 20 * 发短信 21 */ 22 @Override 23 public void message() { 24 25 System.out.println("智能手机通过语音发短信!"); 26 27 } 28 29 /** 30 * 打游戏 31 */ 32 @Override 33 public void playGame() { 34 35 System.out.println("智能手机具有打游戏的功能!"); 36 37 } 38 39 }
1 package com.inter.demo; 2 3 public class Psp implements IPlayGame { 4 5 @Override 6 public void playGame() { 7 8 System.out.println("PSP是一部专业游戏机!"); 9 10 } 11 12 }
1 package com.inter.demo; 2 3 /** 4 * 测试类 5 * 6 */ 7 public class Initail { 8 9 public static void main(String[] args) { 10 11 TelPhone p1 = new CellPhone(); 12 p1.call(); 13 p1.message(); 14 System.out.println("--------------------------"); 15 16 TelPhone p2 = new SmartPhone(); 17 p2.call(); 18 p2.call(); 19 System.out.println("--------------------------"); 20 21 IPlayGame i1 = new SmartPhone(); 22 i1.playGame(); 23 System.out.println("--------------------------"); 24 25 IPlayGame i2 = new Psp(); 26 i2.playGame(); 27 System.out.println("--------------------------"); 28 29 IPlayGame i3 = new IPlayGame() { 30 31 @Override 32 public void playGame() { 33 34 System.out.println("使用匿名内部类的方式1实现接口!"); 35 36 } 37 }; 38 i3.playGame(); 39 System.out.println("--------------------------"); 40 41 new IPlayGame() { 42 43 @Override 44 public void playGame() { 45 46 System.out.println("使用匿名内部类的方式2实现接口!"); 47 48 } 49 }.playGame();; 50 51 } 52 53 }
参考:慕课网(http://www.imooc.com/video/2789)
标签:
原文地址:http://www.cnblogs.com/jinjiyese/p/4837471.html