java 继承练习题1

package com.lianxi;

public class Instrument {
    public void play()
    {
        System.out.println("弹奏乐器");
    }

}
package com.lianxi;

public class Wind extends Instrument {
    public void play()
    {
        System.out.println("弹奏Wind");
    }
    public void play2()
    {
        System.out.println("调用Wind的play2");
    }

}
package com.lianxi;

public class Brass extends Instrument {
    public void play()
    {
        System.out.println("弹奏brass");
    }

    public void play2()
    {
        System.out.println("调出brass的play2");
    }
}
package com.lianxi;

public class Music {
    //调用对象I的play

    public static void tune(Instrument i)
    {
        i.play();
    }

    public static void main(String[] args) {
        // TODO 自动生成的方法存根

        //调用turn方法,以Wind类对象为参数
        Wind w=new Wind();

        tune(w);
        //调用turn方法,以Brass类对象为参数
        Brass b=new Brass();
        tune(b);

    }

时间: 2024-09-30 13:03:08

java 继承练习题1的相关文章

java 继承练习题8

按要求编写一个Java应用程序: (1)编写一个矩形类Rect,包含: 两个protected属性:矩形的宽width:矩形的高height. 两个构造方法: 1.一个带有两个参数的构造方法,用于将width和height属性初化: 2.一个不带参数的构造方法,将矩形初始化为宽和高都为10. 两个方法: 求矩形面积的方法area() 求矩形周长的方法perimeter() (2)通过继承Rect类编写一个具有确定位置的矩形类PlainRect,其确定位置用 矩形的左上角坐标来标识,包含: 添加两

java 继承练习题2

创建如下三个类:(People类中的三个方法分别输出一些信息,ChinaPeople 和AmericanPeople类重写父类的三个方法). package com.hanqi; public class People { private double height; private double weight; public double getHeight() { return height; } public void setHeight(double height) { this.hei

java 继承练习题3

写一个Java应用程序,该程序包括3个类: A类.B类和主类E.其中 类B是类A的子类,在子类B中新增了成员变量和成员方法,并且隐藏了父类 A的成员变量和重写了父类A的成员方法.在主类E的main方法中,创建类B 的对象并赋给父类A的对象a,使用上转型对象a来测试上转型对象的一些特性. public class A { public int a; public void a1() { System.out.println("这是A的一个方法"); } } package com.han

java 继承练习题4

编写一个Java应用程序,该程序包括3个类:Monkey类.People类和主类 E.要求: (1) Monkey类中有个构造方法:Monkey (String s),并且有个public void speak() 方法,在speak方法中输出“咿咿呀呀......”的信息. (2)People类是Monkey类的子类,在People类中重写方法speak(),在speak方法 中输出“小样的,不错嘛!会说话了!”的信息. (3)在People类中新增方法void think(),在think方

java 继承练习题5

编写一个类A,该类创建的对象可以调用方法f输出小写的英文字母表.然 后再编写一个A类的子类B,要求子类B必须继承类A的方法f(不允许重写), 子类B创建的对象不仅可以调用方法f输出小写的英文字母表,而且可以调用子 类新增的方法g输出大写的英文字母表.最后 编写主类C,在主类的main方法 中测试类A与类B. public class A { public void f() { System.out.println("abcdefghijklmnopqrstuvwxyz"); } } p

Java继承 练习题

第一题 /* 看程序写结果: A:成员变量 就近原则 B:this和super的问题 this访问本类的成员 super访问父类的成员 C:子类构造方法执行前默认先执行父类的无参构造方法 D:一个类的初始化过程 成员变量进行初始化 默认初始化 显示初始化 构造方法初始化     用参数去调用构造函数就是显式初始化,没有参数就是默认初始化,表现为直接声明对象和数组 所以执行父类无参构造方法前会先执行成员变量的初始化,public int num = 10;,再执行无参构造方法,同理,执行完父类无参

java 继承练习题7

编写一个Car类,具有final类型的属性品牌,具有功能drive: 定义其子类Aodi和Benchi,具有属性:价格.型号:具有功能:变速: 定义主类E,在其main方法中分别创建Aodi和Benchi的对象并测试对象的特 性. public class Car { private final String Pinpai=""; public String getPinpai() { return Pinpai; } public void drive() { System.out.

java继承和多态

java方法直接调用原理推测 有错误还望指正 当直接调用某对象的某方法时  会更具该对象获取到类信息对象   在从类信息对象中找到该方法 没找到 获取父类信息对象继续查找 找到了执行  jdk距离实现是通过反射还是其它? 如果按以上原理    以下情况解释不通 创建一子类对象  赋值给一父类指针变量  通过父类指针变量掉run方法   run方法在父类或子类中为私有  这种情况调用的是父类的run方法 并非子类的run方法 反射jar包 package extend; import org.ju

Java继承,多态,组合应用

继承:  面向对象的三大特征之一:    是类和类之间的一种拓展关系,是一种从一般到特殊的关系;    格式: sub   extends Super,  我们把sub称为子类或者拓展类, 把super称为父类或者基类(超类)   泛化: 把子类中的共性抽取到父类的过程; 特化: 子类在父类的基础之上,拓展自己特有的状态和特征;    Object: 是所有类的直接父类后间接父类;      class  Student{} 等价于  class  Student extends Object{