No2_1.接口继承多态_Java学习笔记_接口

Posted sunshine-habit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了No2_1.接口继承多态_Java学习笔记_接口相关的知识,希望对你有一定的参考价值。

接口、继承与多态
1.继承和多态是面向对象开发语言中的重要一个环节,使用得当,可以将整个程序的架构变得非常有弹性,减少代码冗余;
2.继承:复用定义好的类;
3.多态:可以动态调整对象的调用,降低对象的依存关系;
4.接口:Java中类可以实现多个接口,被用来建立类与类之间的标准;


***接口***
1.接口的目的:
Java语言只支持单继承,即一个类只能有一个父类。
实际应用中,经常需要多继承解决问题,为解决该问题,提供接口实现类的多重继承;
2.接口定义:与类的定义类似,接口的声明和接口体;
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 变量;
[public] [abstract] 方法;
}
3.接口中的方法是没有方法体的;
4.接口的实现:
接口定义后就可以在类中实现该接口;用implements;
[修饰符] class <类名> [extends 父类名][implements 接口列表]{}
4.在类的继承中只能做单重继承,而实现接口时,一次可以实现多个接口,用逗号隔开;
这样可能会出现变量名或方法冲突的情况,需要明确指定变量的接口,“接口名.变量”实现;

 1 interface drawTest { // 定义接口
 2     public void draw(); // 定义方法
 3 }
 4 
 5 // 定义平行四边形类,该类继承了四边形类,并实现了drawTest接口
 6 class ParallelogramgleUseInterface extends QuadrangleUseInterface
 7         implements drawTest {
 8     public void draw() { // 由于该类实现了接口,所以需要覆盖draw()方法
 9         System.out.println("平行四边形.draw()");
10     }
11     
12     void doAnyThing() { // 覆盖父类方法
13         // SomeSentence
14     }
15 }
16 
17 class SquareUseInterface extends QuadrangleUseInterface implements
18         drawTest {
19     public void draw() {
20         System.out.println("正方形.draw()");
21     }
22     
23     void doAnyThing() {
24         // SomeSentence
25     }
26 }
27 
28 class AnyThingUseInterface extends QuadrangleUseInterface {
29     void doAnyThing() {
30         
31     }
32 }
33 
34 public class QuadrangleUseInterface { // 定义四边形类
35     public void doAnyTthing() {
36         // SomeSentence
37     }
38     
39     public static void main(String[] args) {
40         drawTest[] d = { // 接口也可以进行向上转型操作
41         new SquareUseInterface(), new ParallelogramgleUseInterface() };
42         for (int i = 0; i < d.length; i++) {
43             d[i].draw(); // 调用draw()方法
44         }
45     }
46 }

输出结果:

 1  接口、继承与多态
 2 
 3 用接口实现求圆的面积与周长
 4 圆的周长是:31.400002
 5 ○的面积是:78.5
 6 
 7 接口实现图片不同格式的保存
 8 将图片保存成GIF格式~
 9 
10 定义GPSCar类,继承Car并实现接口GPS
11 java.awt.Point[x=888,y=888]
12 车名:Benz 车速:888千米/小时
13 坐标:888,888

 

以上是关于No2_1.接口继承多态_Java学习笔记_接口的主要内容,如果未能解决你的问题,请参考以下文章

No2_2.接口继承多态_Java学习笔记_继承

JAVA零基础小白学习教程之day08_接口&多态

JAVA零基础小白学习教程之day08_接口&多态

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第3节 接口_14_接口之间的多继承

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第2节 抽象类_5_接口的默认方法定义

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第2节 抽象类_9_接口的私有方法定义