• 编写程序实现乐手弹奏乐器(多态)


    /**
     * 1.编写程序实现乐手弹奏乐器。乐手可以弹奏不同的乐器从而发出不同的声音。
     * 可以弹奏的乐器包括二胡、钢琴和琵琶。
     *     实现思路及关键代码:
     *        1)定义乐器类Instrument,包括方法makeSound()
     *        2)定义乐器类的子类:二胡ErHu、钢琴Piano和小提琴Violin
     *        3)定义乐手类Musician,可以弹奏各种乐器play(Instrument i)
     *        4)定义测试类,给乐手不同的乐器让他弹奏
     */
    public class Test03 {
        public static void main(String[] args) {
            //创建乐手对象
            Musician musician = new Musician();
    
            /*
            //乐手拉二胡
            musician.play(new ErHu());      //二胡发出美妙的音乐......
            //乐手演奏钢琴
            musician.play(new Piano());     //钢琴发出悠扬的乐声......
            //乐手小提琴表演
            musician.play(new Violin());    //小提琴发出动人的旋律......
             */
    
            //创建乐器对象(父类型引用指向子类型对象)
            Instrument erHu = new ErHu();
            Instrument piano = new Piano();
            Instrument violin = new Violin();
            //乐手弹奏各种乐器
            musician.play(erHu);    //二胡发出美妙的音乐......
            musician.play(piano);   //钢琴发出悠扬的乐声......
            musician.play(violin);  //小提琴发出动人的旋律......
        }
    }
    //乐手类
    class Musician{
        //弹奏乐器的方法
        public void play(Instrument instrument){
            instrument.makeSound();
        }
    }
    //乐器类 父类
    class Instrument{
        //乐器发声的方法
        public void makeSound(){
    
        }
    }
    //二胡类 子类
    class ErHu extends Instrument{
        //重写乐器发声的方法
        public void makeSound(){
            System.out.println("二胡发出美妙的音乐......");
        }
    }
    //钢琴类
    class Piano extends Instrument{
        //重写乐器发声的方法
        public void makeSound(){
            System.out.println("钢琴发出悠扬的乐声......");
        }
    }
    //小提琴类
    class Violin extends Instrument{
        //重写乐器发声的方法
        public void makeSound(){
            System.out.println("小提琴发出动人的旋律......");
        }
    }
  • 相关阅读:
    netfilter&iptables探讨(2)——netfilter原理与实现
    Unity3d+GameFramework:资源分析,资源依赖,循环依赖检测
    Java学习笔记2 变量的命名
    Ubuntu手动安装Docker
    [Unity]GPU Instancing 无效的原因
    C++【类和对象】【三】
    SQL练习题
    抽象类和抽象方法
    java数据结构与算法 --- 第十章 数结构基础
    传输安全HTTPS
  • 原文地址:https://blog.csdn.net/heliuerya/article/details/127986648