Java基础十--接口

Java基础十--接口

一、接口的定义和实例

  1 /*
  2 abstract class AbsDemo
  3 {
  4     abstract void show1();
  5     abstract void show2();
  6 }
  7
  8 当一个抽象类中的方法都是抽象的时候,这时可以将该抽象类用
  9 另一种形式定义和表示,就是 接口 interface。
 10 */
 11
 12 //定义接口使用的关键字不是class,是interface.
 13 //interface编译后还是.class文件,其实本质上还是class.
 14
 15 /*
 16 接口和类中是实现,接口和接口之间是多继承,为什么可以多继承,因为没有方法体,能否多继承的实质看有没有方法体
 17 */
 18
 19 /*
 20 对于接口当中常见的成员:而且这些成员都有固定的修饰符。
 21 1,全局常量: public  static final
 22
 23 2,抽象方法。public abstract
 24
 25 修饰词你自己不写的话程序给你加上。所以我们都写上,那样阅读性强。
 26
 27 由此得出结论,接口中的成员都是公共的权限.
 28
 29 继承没有实现成员变量,方法也是抽象方法,没有函数体的方法,所以实现接口和继承类不冲突,因为接口和类里面的东西不一样
 30 */
 31 interface Demo
 32 {
 33     public static final int NUM = 4;//static和final和public你不写程序会给你默认加上
 34
 35     public abstract void show1();//public和abstract你不写程序会给你默认加上
 36     public abstract void show2();
 37 }
 38 //类与类之间是继承关系,类与接口直接是实现关系。
 39 /*
 40 接口不可以实例化。
 41
 42 只能由实现了接口的子类并覆盖了接口中所有的抽象方法后,该子类才可以实例化。
 43 否则,这个子类就是一个抽象类。
 44
 45 */
 46
 47
 48 class DemoImpl implements /*实现*/Demo
 49 {
 50     public void show1()
 51     {}
 52
 53     public void show2()
 54     {
 55
 56     }
 57 }
 58
 59
 60 /*
 61 在java中不直接支持多继承,因为会出现调用的不确定性。
 62 所以java将多继承机制进行改良,在java中变成了多实现。
 63
 64 一个类可以实现多个接口。
 65
 66 */
 67
 68 interface A
 69 {
 70     public void show();
 71 }
 72
 73 interface Z
 74 {
 75     public int add(int a,int b);
 76 }
 77
 78
 79
 80
 81 class Test implements A,Z//多实现
 82 {
 83
 84     public int add(int a,int b)
 85     {
 86         return a+b+3;
 87     }
 88     /**/
 89     public void show(){}
 90
 91 }
 92
 93
 94
 95
 96
 97 /*
 98 一个类在继承另一个类的同时,还可以实现多个接口。
 99
100
101
102 */
103 class Q
104 {
105     public void method()
106     {}
107 }
108
109 abstract class Test2 extends Q implements A,Z
110 {
111
112 }
113 /*
114 接口的出现避免了单继承的局限性。
115
116 */
117
118
119 interface CC
120 {
121     void show();
122 }
123 interface MM
124 {
125     void method();
126 }
127
128 interface QQ extends  CC,MM//接口与接口之间是继承关系,而且接口可以多继承。
129 {
130     void function();
131 }
132
133 class WW implements QQ
134 {
135 //覆盖3个方法。
136     public void show(){}
137     public void method(){}
138     public void function(){}
139 }
140
141
142 class InterfaceDemo
143 {
144     public static void main(String[] args)
145     {
146
147         Test t = new Test();
148         t.show();
149
150 //        DemoImpl d = new DemoImpl();
151 //        System.out.println(d.NUM);
152 //        System.out.println(DemoImpl.NUM);
153 //        System.out.println(Demo.NUM);
154     }
155 }

二、接口和抽象类的区别

 1 /*
 2 抽象类和接口的异同点:
 3
 4 相同点:
 5     都是不断向上抽取而来的。
 6
 7
 8 不同点:
 9     1,抽象类需要被继承,而且只能单继承。
10        接口需要被实现,而且可以多实现。
11     2,抽象类中可以定义抽象方法和非抽象方法,子类继承后,可以直接使用非抽象方法。
12        接口中只能定义抽象方法,必须由子类去实现。
13     3,抽象类的继承,是is a关系,在定义该体系的基本共性内容。
14        接口的实现是 like a 关系,在定义体系额外功能。
15
16
17
18
19 犬按功能分:有导盲犬,搜爆犬。
20
21
22 abstract class 犬
23 {
24     abstract void 吼叫();
25 }
26
27 //abstract class 导盲
28 interface 导盲
29 {
30     abstract void 导盲();
31 }
32
33
34 class 导盲犬 extends 犬 implements 导盲
35 {
36     public void 吼叫()
37     {
38     }
39     public void 导盲(){}
40 }
41
42
43
44 //在不同的问题领域中,有不同的分析方式。
45 学员:
46     学习。
47     抽烟学员
48
49
50
51
52 烟民。
53
54
55
56
57
58
59
60
61 */
62
63 class InterfaceDemo
64 {
65     public static void main(String[] args)
66     {
67         System.out.println("Hello World!");
68     }
69 }
时间: 2024-09-30 13:04:43

Java基础十--接口的相关文章

Java基础十二--多态是成员的特点

Java基础十二--多态是成员的特点 一.特点 1,成员变量. 编译和运行都参考等号的左边. 覆盖只发生在函数上,和变量没关系. Fu f = new Zi();System.out.println(f.num);//是父类,答案是3 2,成员函数(非静态). 编译看左边,运行看右边. 因为成员函数存在覆盖特性. Fu f = new Zi();//f.show();输出的是子类里面的show方法 3,静态函数. 编译和运行都看左边. 静态函数不具备多态性,多态性是对象的多态性,然后静态函数不涉

Java基础10 接口的继承与抽象类(转载)

接口继承 接口继承(inheritance)与类继承很类似,就是以被继承的interface为基础,增添新增的接口方法原型.比如,我们以Cup作为原interface: interface Cup{    void addWater(int w);    void drinkWater(int w);} 我们在继承Cup的基础上,定义一个新的有刻度的杯子的接口,MetricCup 接口如下: interface MetricCup extends Cup{    int WaterContent

【BigData】Java基础_接口

接口概念 Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能). 以下是个人理解: 在软件开发过程中,当我们开发一个大型项目的时候,可能很多人一起共同开发一个项目,但是整个项目分为很多模块,我们不能按照顺序去开发模块,等A团队开发测试完毕第一个模块,B团队才开始开发第二个模块,这样的话,如果A团队出现延期,那么将会影响整个项目的开发进度,所以这种串行的开发方式是不行的,那么我们

Java基础10 接口的继承与抽象类

链接地址:http://www.cnblogs.com/vamei/archive/2013/03/31/2982240.html 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在实施接口中,我们利用interface语法,将interface从类定义中独立出来,构成一个主体.interface为类提供了接口规范. 在继承中,我们为了提高程序的可复用性,引入的继承机制.当时的继承是基于类的.interface接口同样可以继承

java基础(11):接口、多态

1. 接口 1.1 接口概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”. 接口只描述所应该具备的方法,并没有具体实现,具体的实现由接口的实现类(相当于接口的子类)来完成.这样将功能的定义与实现分离,优化了程序设计. 请记住:一切事物均有功能,即一切事物均有接口. 1.2 接口的定义 与定义类的class不同,接口定义时需要使用interface关键字. 定义接口所在的仍为.java文件,虽然声明时使用的为interface关键字的编译后仍然会产生.class文件.这

JAVA基础篇—接口实现动态创建对象

Scanner在控制台输入内容 package com.Fruit; public interface Fruit {//提供接口 } package com.Fruit; public class Apple implements Fruit{ public Apple(){ System.out.println("创建了一个苹果"); }} public class Oranges implements Fruit{ public Oranges(){ System.out.pri

Java基础Map接口+Collections

1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Map集合的添加 */ Map<String, String> map = new HashMap<String, String>(); map.put("星期一", "Monday"); map.put("星期六", "

Java基础——关于接口和抽象类的几道练习题

呃,一定要理解之后自己敲!!!这几道题,使我进一步了解了接口和抽象类. 1.设计一个商品类 字段: 商品名称,重量,价格,配件数量,配件制造厂商(是数组,因为可能有多个制造厂商) 要求: 有构造函数 重写 toString 方法 重写 equals方法,进行两件商品的比较 1 package TT; 2 3 import java.util.Arrays; 4 5 public class G { 6 private int 重量; 7 private String 商品名称; 8 privat

java基础之接口

了解完抽象类后,接着看看接口. 在java中,接口的内容主要是抽象方法,当然也可以包含属性(在接口中定义的属性默认也只能为常量)..,一般情况下不在接口中定义属性.. 接口关键字interface ,下图就是一个简单的接口. 定义了一个接口Inter,里面有一个方法 show.很明显,接口中的方法也是抽象的,所以需要我们去实现它. 实现接口的方式:implements.如图 接口的使用方式跟抽象类很像..在这里我们先不讨论接口与抽象类的区别,留到下一次讲 接口的注意事项: 1.接口,我们可以理解