继承(9.21)——————————课后练习

时间:2023-02-14 13:44:30
 
 
package 课后练习;
/*
编写一个Animal类,具有属性:种类;具有功能:吃、睡。定义
其子类Fish和Dog,定义主类E,在其main方法中分别创建其对象
并测试对象的特性。
*/

//建立一个父类
class Animal
{
    //成员属性
    private String zhonglei ;

    //构造无参方法
    public Animal( )
    {
        
    }

    //set  get 
    public String getZhonglei() {
        return zhonglei;
    }

    public void setZhonglei(String zhonglei) {
        this.zhonglei = zhonglei;
    }
    
    //成员方法
    public void eat( )
    {
        System.out.println("鱼吃虾米");
    }
    
    public void sleep( )
    {
        System.out.println("在水里睡觉");
    }
    
}

//子类
class Fish extends Animal
{
    
}

//子类
class Dog extends Animal
{
        //重写方法
        public void eat( )
        {
            System.out.println("狗吃骨头");
        }
        
        public void sleep( )
        {
            System.out.println("在地上睡觉");
        }
}


public class E {

    public static void main(String[] args) 
    {
        Fish a = new Fish( ) ;
        a.eat();
        a.sleep();
        
        System.out.println();
        
        Dog b = new Dog( ) ;
        b.eat();
        b.sleep();
        
    }

}
继承(9.21)——————————课后练习

 

 
 

 

package 课上练习;
/*
编写一个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方法中输出“别说话!认真思考!”

的信息。

(4)在主类E的main方法中创建Monkey与People类的对象类测试这2个类的功

能。
*/

//测试
public class E {

    public static void main(String[] args) {

        //创建一个猴子对象
        Monkey a = new Monkey("咿咿呀呀~") ;
        
        a.speak();
        
        //创建一个人类对象
        People1 b= new People1() ;
        
        b.speak();
        
        b.thank();
    }

}

//新建猴子类
class Monkey
{    
    //无参构造方法
    public  Monkey()
    {
            
    }    
    
    //有参构造方法
    public  Monkey(String s)
    {
            
    }    
        
    //成员方法
    public void speak( ) 
    {
        System.out.println("咿咿呀呀~");
    }
    
}

//新建人类是猴子类的子类
class People1 extends Monkey
{
    //继承后进行方法重写
    public void speak( ) 
    {
        System.out.println("小样的,不错嘛!会说话了!");
    }
    //添加新的方法
    public void thank ( )
    {
        System.out.println("别说话!认真思考!");
    }
    
}

 

继承(9.21)——————————课后练习

 

 

package 课上练习;

//新建一个父类
class  People2
{
    //成员属性
    protected double weight ;
    protected double height ;
    
    //get  set 
    public double getWeight() {
        return weight;
    }

    public void setWeight(double weight) {
        this.weight = weight;
    }

    public double getHeight() {
        return height;
    }

    public void setHeight(double height) {
        this.height = height;
    }

    //无参构造方法
    People2( )
    {
        
    }
    
    //成员方法
    public void speakHello( )
    {
        System.out.println("你好!");
    }
    
    public void averageHeight( )
    {
        System.out.println("我们中国人平均身高1.75m");
    }
    
    public void averageWeight( )
    {
        System.out.println("我们中国人平均体重60kg");
    }
    
}

//建立一个子类
class ChinaPeople extends People2
{
    //成员方法
    public void chinaGongFu()
    {
        System.out.println("坐如钟,站如松,卧如弓,中国功夫博大精深");
    }
}

//建立一个子类
class AmericanPeople extends People2
{
    //成员方法
    public void americanBoXing()
    {
        System.out.println("直拳,勾拳,俯冲拳,拳拳入肉");
    }
    
    //方法重写
    public void speakHello( )
    {
        System.out.println("hello~");
    }
    
    public void averageHeight( )
    {
        System.out.println("我们美国人平均身高1.78m");
    }
    
    public void averageWeight( )
    {
        System.out.println("我们美国人平均体重63kg");
    }
}


//测试类
public class A922
{

    public static void main(String[] args)
    {
        //创建对象
        ChinaPeople a = new ChinaPeople( ) ;
        a.setHeight(178);
        a.setWeight(63);
        a.speakHello();
        System.out.println("我是中国人,身高"+a.getHeight()+"米,体重"+a.getWeight()+"kg");
        a.averageWeight();
        a.averageHeight();
        a.chinaGongFu();
        
        System.out.println();
        
        AmericanPeople b = new AmericanPeople( ) ;
        b.setHeight(180);
        b.setWeight(67);
        b.speakHello();
        System.out.println("我是中国人,身高"+b.getHeight()+"米,体重"+b.getWeight()+"kg");
        b.averageWeight();
        b.averageHeight();
        b.americanBoXing();
    }

}

 

继承(9.21)——————————课后练习

 

package 课后练习;

//建立一个父类
class Instrument
{
    //构造无残方法
    public Instrument( )
    {
        
    }
    
    //成员方法
    public void play( )
    {
        System.out.println("弹奏乐器");
    }
}

//创建第一个子类
class Wind extends Instrument
{
    //将父类方法重写
        public void play( )
        {
            System.out.println("弹奏Wind");
        }
    //新的成员方法
    public void play2( )
    {
        System.out.println("调用Wind的play2");
    }
}

//
class Brass extends Instrument
{
    //将父类方法重写
    public void play( )
    {
        System.out.println("弹奏Brass");
    }
    //新的成员方法
    public void play2( )
    {
        System.out.println("调用Brass的play2");
    }
}

public class Music 
{
    public static void tune( Instrument i )
    {
        i.play();
    }
    
    public static void main(String[] args)
    {
        Instrument i = new Instrument( ) ;
        tune(i);
        
        Wind a = new Wind( ) ;
        a.play();
        a.play2();
        

        Brass b = new Brass( ) ;
        b.play();
        b.play2();
    }

}
 ;
 

继承(9.21)——————————课后练习

 

package 课后练习;
/*
 按要求编写一个Java应用程序:
(1)定义一个类,描述一个矩形,包含有长、宽两种属性,和计算面积方法。
(2)编写一个类,继承自矩形类,同时该类描述长方体,具有长、宽、高属性,
和计算体积的方法。
(3)编写一个测试类,对以上两个类进行测试,创建一个长方体,定义其长、
宽、高,输出其底面积和体积。
 */

//父类
class ChangFangXing {
    // 成员属性
    private double kuan;
    private double chang;

    // 构造方法
    public ChangFangXing() {

    }

    // 构造方法
    public ChangFangXing(double kuan, double chang) {
        this.chang = chang;
        this.kuan = kuan;
    }

    // 面积方法
    public double mianJi() {
        return chang * kuan;
    }

    // 周长方法
    public double zhouChang() {
        return 2 * (chang + kuan);
    }

}

// 子类
class Lifangti extends ChangFangXing {
    // 成员属性
    private double gao;
    private double kuan;
    private double chang;

    // 构造方法
    public Lifangti(double kuan, double gao, double chang) {
        this.gao = gao;
        this.chang = chang;
        this.kuan = kuan;
    }
    
    //体积方法
    public double tiJi() {
        return gao * chang * kuan;
    }

    // 面积方法
    public double mianJi() {
        return chang * kuan;
    }

    // 周长方法
    public double zhouChang() {
        return 2 * (chang + kuan);
    }
}

//测试类
public class Ceshijuxing {

    public static void main(String[] args) {

        Lifangti a = new Lifangti(2, 3, 3);

        System.out.println("立方体底面矩形周长=" + a.zhouChang() + "\n底面面积=" + a.mianJi() + "\n体积=" + a.tiJi());

    }

}

继承(9.21)——————————课后练习