A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© a80C51 中级黑马   /  2015-9-6 21:58  /  357 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

接口

一、定义:
是一个比较特殊的抽象类。

二、关键字 interface

三、接口格式的特点
1,接口中常见定义:常量和抽象方法;没有构造器和初始化块。
2,接口中的成员都有固定的修饰符
        常量:public static final
        方法:public abstract
3,接口中的成员都是public
4,接口无法创建对象,因为有抽象方法

四、接口和类的关系——实现,关键字implements

五、接口可以被类多实现。

六、接口可以支持多继承。

七,接口的特点
a,是对外暴露的规则;
b,是程序的扩展功能;
c,可以用来多实现;
d,类可以继承一个类的同时,实现多个接口;
e,接口与接口之间有多继承关系。

八,基本功能在类中定义,而扩展功能在接口中定义。
代码例子如下:
  1. abstract class Student
  2. {       
  3.         public abstract void study();
  4.        
  5.         Student(String name)
  6.         {
  7.                 System.out.println("My name is "+name);
  8.         }
  9.        
  10.         public void sleep()
  11.         {
  12.                 System.out.println("I need sleep!");
  13.         }
  14. }

  15. interface Smoke
  16. {
  17.         public abstract void smoking();
  18. }

  19. interface Drink
  20. {
  21.         public abstract void drinking();
  22. }

  23. class Wayne extends Student
  24. {
  25.         Wayne(String nameStr)
  26.         {
  27.                 super(nameStr);
  28.         }

  29.         public void study()
  30.         {
  31.                 System.out.println("good good study,day day up!");
  32.         }
  33. }

  34. class Bruce extends Student implements Smoke
  35. {
  36.         Bruce(String nameStr)
  37.         {
  38.                 super(nameStr);
  39.         }

  40.         public void study()
  41.         {
  42.                 System.out.println("study so so!!");
  43.         }
  44.        
  45.         public void smoking()
  46.         {
  47.                 System.out.println("also smoking");
  48.         }
  49. }

  50. class Anna extends Student implements Smoke,Drink
  51. {
  52.         Anna(String nameStr)
  53.         {
  54.                 super(nameStr);
  55.         }

  56.         public void study()
  57.         {
  58.                 System.out.println("study not good!!");
  59.         }
  60.        
  61.         public void smoking()
  62.         {
  63.                 System.out.println("not only smoking");
  64.         }
  65.        
  66.         public void drinking()
  67.         {
  68.                 System.out.println("but also drinking");
  69.         }
  70. }

  71. public class myInterface
  72. {
  73.         public static void main(String[] args)
  74.         {
  75.                 Wayne wayne = new Wayne("Wayne");
  76.                
  77.                 wayne.study();
  78.                
  79.                 Bruce bruce = new Bruce("Bruce");
  80.                 bruce.study();
  81.                 bruce.smoking();
  82.                
  83.                 Anna anna = new Anna("Anna");
  84.                 anna.study();
  85.                 anna.smoking();
  86.                 anna.drinking();
  87.         }
  88. }
复制代码

2 个回复

倒序浏览
a80C51 来自手机 中级黑马 2015-9-6 23:27:01
沙发
另外,补充接口的用途
虽然不能用于创建实例,但可以用于声明引用类型变量。
主要作用有三个
1,定义变量,可进行强制类型转换。
2,调用接口中定义的常量。
3,被其他类实现。
回复 使用道具 举报
顶顶顶顶顶的顶顶顶顶顶的顶顶顶顶顶
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马