2 接口
2.1接口
2.1.1 概念理解
接口是一种约定规范,是多个抽象方法的集合。仅仅只是定义了应该有哪些功能,本身不实现功能,
至于每个功能具体怎么实现,就交给实现类完成。
接口中的方法是抽象方法,并不提供功能实现,体现了规范和实现相分离的思想,也体现了组件之间
低耦合的思想。
所谓耦合度,表示组件之间的依赖关系。依赖关系越多,耦合性越强,同时表明组件的独立性越差,
在开发中往往提倡降低耦合性,可提高其组件独立性,举一个低耦合的例子。
电脑的显卡分为集成显卡和独立显卡:
n 集成显卡:显卡和主板焊死在一起,显卡坏了,只能换主板
n 独立显卡:显卡和主板相分离,显卡插到主板上即可,显卡坏了,只换显卡,不用换主板
接口也体现的是这种低耦合思想,接口仅仅提供方法的定义,却不提供方法的代码实现。那么得专门
提供类并去实现接口,再覆盖接口中的方法,最后实现方法的功能,在多态案例中再说明。
2.1.2 接口申明&多继承性
接口可以认为是一种特殊的类,但是定义类的时候使用 class 关键字,定义接口使用 interface 关键字。
public interface 接口名{ 抽象方法 1(); 抽象方法 2(); 抽象方法 2(); } |
接口表示具有某些功能的事物,接口名使用名词,有人也习惯以 I 打头如 IWalkable.java。
接口定义代码:
public interface IWalkable {
void walk();
}
接口中的方法都是公共的抽象方法,等价于:
public interface IWalkable {
public abstract void walk();
}
类可以继承类,但是只能单继承的,接口也可以继承接口,但是却可以继承多个接口,也就是说一个
接口可以同时继承多个接口,如两栖动物可以行走也可以拥有。
可行走规范:
public interface IWalkable {
void walk();
}
可游泳规范:
public interface ISwimable {
void swim();
}
两栖动物规范,即可以游泳,又可以行走。
public interface IAmphibiable extends IWalkable,ISwimable{
}
此时子接口能继承所有父接口的方法。
2.2接口实现类
2.2.1 接口实现类概念
和抽象类一样,接口是不能创建对象的,此时必须定义一个类去实现接口,并覆盖接口中的方法,这
个类称之为实现类,类和接口之间的关系称之为实现关系(implements)。
public class 类名 implements 接口名 1,接口名 2{
覆盖接口中抽象方法
}
在类实现接口后,覆盖接口中的抽象方法,完成功能代码,此时接口和实现类之间的关系:
n 接口:定义多个抽象方法,仅仅定义有哪些功能,却不提供实现。
n 实现类:实现接口,覆盖接口中抽象方法,完成功能具体的实现。
2.2.2 接口与实现类案例
1 多态(polymorphic)
1.1 什么是多态?
简单理解 : 看成一种事物多种形态
示例 :
今天晚上大家请我吃大餐 : 龙虾 喝粥 思想大餐....
我准备买一辆车: 独轮车 自行车 拖拉机 布加迪模型....
Java 程序中的体现:
|
多态概念:
将子类对象装到父类的变量中保存(向上造型/向上转型),当父类变量调用方法的时候,如果子类重写了该方法,会直接执行子类重写之后的方法。(父类变量可以装任意类型的子类对象)。
多态案例1: 父类: public class Animal { int age = 1; public void eat() { System.out.println("吃...."); } } 子类: public class Person extends Animal{ int age = 2; @Override public void eat() { System.out.println("吃肉..."); } public void coding() { System.out.println("撸代码..."); } } public class Pig extends Animal{ int age = 3; |