Day11面向对象-多态

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;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值