【java】简单继承练习

1.

package 上机3;

public class test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Bird bird=new Bird("公");
        bird.shout();
        Dog dog=new Dog("萨摩");
        dog.shout();
        Person p=new Person("张三");
        p.speak();
        Student stu=new Student("李四","1234567");
        stu.study();
	}

}

class Animal
{
	protected String zhonglei; //动物种类
	public void shout()
	{
		System.out.println("动物发出叫声");
	}
}

class Bird extends Animal
{
	private String sex; //鸟的性别
	public Bird(String sex)
	{
		super.zhonglei="哺乳类";
		this.sex=sex;
	}
	public void shout()
	{
		System.out.println("吱吱");
	}
}

class Dog extends Animal
{
	private String pinzhong;  //狗的品种
	public Dog(String pinzhong)
	{
		super.zhonglei="哺乳类";
		this.pinzhong=pinzhong;
	}
	public void shout()
	{
		System.out.println("汪汪");
	}
}

class Person extends Animal
{
	protected String name;
	public Person(String name)
	{
		super.zhonglei="哺乳类";
		this.name=name;
	}
	public void speak()
	{
		System.out.println(name+"交流");
	}
}

class Student extends Person
{
	private  String num;  //学号 
	public Student(String name,String num)
	{
		super(name);   //调用父类Person的构造函数
		this.num=num;
	}
	public void study()
	{
		System.out.println(super.name+"学习");
	}
}
2. 建立一个汽车Auto类,包括轮胎个数,汽车颜色,车身重量、速度等成员变量。并通过不同的构造方法创建实例。至少要求:汽车能够加速,减速,停车。再定义一个小汽车类Car,继承Auto,并添加空调、CD等成员变量,覆盖加速,减速的方法

package 上机3;

public class test1 {
    public static void main(String[] args)
    {
    	Auto a=new Auto(8,"蓝色",100);
    	a.setSpeed(30);
    	a.addSpeed(20);
    	a.subSpeed(10);
    	Car c=new Car(4,"白色",80,"空调","张杰专辑");
    	c.addSpeed(30);
    	c.subSpeed(10);
    }
}

class Auto
{
	protected int tyreNum; //轮胎个数
	protected String collor; //汽车颜色
	protected int weight;//车身重量
	protected int speed; //速度
	
	public Auto(int tyreNum,String collor,int weight)
	{
		this.tyreNum=tyreNum;
		this.collor=collor;
		this.weight=weight;
	}
	
	public void setSpeed(int speed)
	{
		this.speed=speed;
	}
	
	public void addSpeed(int num)
	{
		int maxSpeed=120;
	    int ret=speed+num;
	    if(ret<=maxSpeed)
		{
	    	speed=ret;
		    System.out.println("当前车速"+speed);
		}
	    else
	    {
	    	speed=maxSpeed;
	    	System.out.println("车速已达上限,无法继续加速");
	    }
	}
	
	public void subSpeed(int num)
	{
		int ret=speed-num;
		if(ret>0)
		{
			speed=ret;
			System.out.println("当前车速"+speed);
		}
		else
		{
			speed=0;
			System.out.println("车速为0,无法继续减速");
		}
	}
	
	public void stop()
	{
		speed=0;
		System.out.println("车停");
	}
}

class Car extends Auto
{

    public Car(int tyreNum,String collor,int weight,String kongtiao,String CD)
    {
    	super(tyreNum,collor,weight);
    	this.kongtiao=kongtiao;
    	this.CD=CD;
    }
    
    public void addSpeed(int num)
    {
    	super.speed=num;
    	if(num<=130)
    	System.out.println("小车速度已加至"+num);
    	else
    		System.out.println("超速");
    }
    
    public void subSpeed(int num)
    {
    	super.speed=num;
    	if(num>=0)
    		System.out.println("小车速度以减至"+num);
    	else
    		System.out.println("小车速度不能为负值");
    }
	protected String kongtiao;
	protected String CD;
}



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一道 Java 继承练习题: 假设有一个 `Animal` 和两个子 `Dog` 和 `Cat`。`Animal` 包含一个 `name` 成员变量一个 `eat` 方法,`Dog` 和 `Cat` 继承了 `Animal` ,并且都有一个 `sound` 方法。现在请你完成以下练习: 1. 在 `Animal` 中,添加一个 `sleep` 方法,并在 `Dog` 和 `Cat` 中覆盖(重写)该方法,使得 `Dog` 和 `Cat` 的 `sleep` 方法输出不同的内容。 2. 在 `Dog` 和 `Cat` 中,实现各自的 `sound` 方法,使得 `Dog` 的 `sound` 方法输出 `"汪汪"`,`Cat` 的 `sound` 方法输出 `"喵喵"`。 3. 编写一个名为 `Main` 的测试,并在其中创建一个 `Dog` 对象和一个 `Cat` 对象,分别调用它们的 `eat`、`sleep` 和 `sound` 方法。 你可以参考以下代码: ```java public class Animal { private String name; public Animal(String name) { this.name = name; } public void eat() { System.out.println(name + " is eating"); } public void sleep() { System.out.println(name + " is sleeping"); } } public class Dog extends Animal { public Dog(String name) { super(name); } public void sleep() { System.out.println(getName() + " is sleeping soundly"); } public void sound() { System.out.println("汪汪"); } } public class Cat extends Animal { public Cat(String name) { super(name); } public void sleep() { System.out.println(getName() + " is sleeping quietly"); } public void sound() { System.out.println("喵喵"); } } public class Main { public static void main(String[] args) { Animal dog = new Dog("旺财"); Animal cat = new Cat("小花"); dog.eat(); dog.sleep(); ((Dog) dog).sound(); cat.eat(); cat.sleep(); ((Cat) cat).sound(); } } ``` 希望这个练习题能够帮助你理解 Java 继承的相关知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值