4,多态和接口

接口的概念来自于现实生活中,大家众所周知的接口,如USB接口。

接口带来什么样的好处呢?扩展性

如果你的电脑有USB接口,那么,只要有USB插头的设备,如鼠标,键盘,打印机,移动硬盘等等,就可以接到你的电脑上,增加你的电脑功能,扩展你的电脑能力。


在Java中,有多态的特性,我们可以利用它来增加程序的扩展性。

多态的概念,简单说,就是子类的引用可以赋值给父类的引用。如下面代码:

Father f = new Son();
当我们调用父类的方法时,实际上调用的是子类的方法。而由于不同子类重写父类的方法可能不同,导致实际执行的效果的不同,呈现多种形态,简称多态。

public class Test(){
  public static void main(String[] args){
    Father f = new ChineseSon();
    f.sayHello();
    f = new EnglishSon();
    f.sayHello();
  }
}
class Father{
  protected void sayHello(){}
}
class ChineseSon extends Father{
  public void sayHello(){
    System.out.println("你好");
  }
}
class EnglishSon extends Father{
  public void sayHello(){
    System.out.println("Hello");
  }
}
输出结果:

你好

Hello


abstract关键字

在声明类时,可在类名前添加abstract关键字。表示该类中,有方法未被实现,是abstract方法该类不能直接实例化对象。

继承该类的子类,必须重写父类中未实现的抽象方法。

abstract class Father{
  protected abstract void sayHello();
}
class Son extends Father{
  public void sayHello(){
    System.out.println("Hello");
  }
}

Interface接口

接口是专门为扩展设计的。接口类的所有方法,都是抽象方法

Java中,一个类只能继承一个父类,但可实现多个接口。

interface Speak{
  public void sayHello();
  public void sayGoodbye();
}
class Son implements Speak{
  public void sayHello(){
    System.out.println("Hello");
  }
  public void sayGoodbye(){
    System.out.println("Good bye");
  }
}

这样,在主程序中我们调用的是父类,或接口的方法。

当我们需要改变某些行为,只需要在赋值给父类引用时,赋不同的子类,或实现类,就可实现功能的扩展和变化,而不用改变主程序。


本节问题:

1,使用接口特性,重构动物园模拟系统,使其有可扩展特性。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值