4,多态和接口
来源:互联网 发布:php 今日凌晨时间戳 编辑:程序博客网 时间:2024/06/05 14:20
接口的概念来自于现实生活中,大家众所周知的接口,如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
- 4,多态和接口
- 接口和多态
- 接口和多态
- 多态和接口示例
- java多态和接口
- 接口,继承和多态
- 接口继承和多态
- 多态和接口实例
- 关于接口和多态
- java接口和多态
- BREW接口的继承和多态
- BREW接口的继承和多态
- BREW接口的继承和多态
- C#中的接口和继承多态
- 【开始学java】接口和多态
- 黑马程序员-接口和多态
- Java中的接口和多态
- java继承和多态、接口小结
- HDU 2546饭卡(DP:01背包)
- android 添加左右滑屏手势
- 找出1到19之中数的和为20的所有组合
- mysql的tmp_table_size和max_heap_table_size
- HDU 2955 Robberies(DP:01背包)
- 4,多态和接口
- dd 标签 -- 代表HTML自定义列表描述
- 题目77-开灯问题
- 一、Mybatis3入门之xml方式
- HDU 3466 Proud Merchants(DP:01背包+贪心)
- scala-school_concurrency in scala—Actors based
- eclipse编码字符集的设定
- 网页居中
- 关于spring-mvc请求路径的问题