很多人都知道面向对象的三大特性:继承 封装 多态,可是真正理解好这三特性并不是一件简单的事.本周我打算对多态进行研究并写下我的小例子:
// 乐器类 class MusicInstruments{ public void play(){ System.out.println("play music"); } public void Instruments(MusicInstruments instruments){ instruments.play(); }} // 笛子类继承乐器类class Flute extends MusicInstruments{ public void play(){ System.out.println("flute play music"); }}// 钢琴类继承乐器类class Piano extends MusicInstruments{ public void play(){ System.out.println("piano play music"); }}public class DuoTai { public static void main(String[] args) { MusicInstruments music = new MusicInstruments(); MusicInstruments f = new Flute(); music.Instruments(f); }}
可以看到你只需要把一个对象当做参数传进去,这个对象必须继承父类才可以,程序就会根据你传入的类型来判断你调用的方法,不需要每个传入的类都定义一个方法,灵活。呵呵