Java继承练习

需求:

分析以下需求用代码实现:

  1. 定义形状类:

    功能:求面积,求周长

  2. 定义圆形类Round:

    属性:半径,圆周率

    功能:求面积,求周长

  3. 定义长方形类Rectangle:

     属性:长和宽
    

    功能:求面积,求周长

  4. 定义测试类:

     分别创建圆形和长方形对象,为相应的属性赋值
    

    分别调用求面积和求周长的方法

代码演示:
//形状类
public abstract class Shape {  
    public abstract void area();  
  
    public abstract void girth();  
}

//圆
public class Round extends Shape {  
    private double radius;  
    private double Pi;  
  
    public Round() {  
    }  
  
    public Round(double radius, double pi) {  
        this.radius = radius;  
        Pi = pi;  
    }  
  
    public double getRadius() {  
        return radius;  
    }  
  
    public void setRadius(double radius) {  
        this.radius = radius;  
    }  
  
    public double getPi() {  
        return Pi;  
    }  
  
    public void setPi(double pi) {  
        Pi = pi;  
    }  
  
    @Override  
    public void area() {  
        double roundArea = 0;  
        roundArea = radius * radius * Pi;  
        System.out.println("圆的面积:" + roundArea);  
    }  
  
    @Override  
    public void girth() {  
        double roundGirth = 0;  
        roundGirth = 2 * radius * Pi;  
        System.out.println("园的周长:" + roundGirth);  
    }  
}

//长方形
public class Rectangle extends Shape {  
    private double length;  
    private double wide;  
  
    public Rectangle() {  
    }  
  
    public Rectangle(double length, double wide) {  
        this.length = length;  
        this.wide = wide;  
    }  
  
    public double getLength() {  
        return length;  
    }  
  
    public void setLength(double length) {  
        this.length = length;  
    }  
  
    public double getWide() {  
        return wide;  
    }  
  
    public void setWide(double wide) {  
        this.wide = wide;  
    }  
  
    @Override  
    public void area() {  
        double rectangleArea = 0;  
        rectangleArea = length * wide;  
        System.out.println("长方形的面积:" + rectangleArea);  
    }  
  
    @Override  
    public void girth() {  
        double rectangleGirth = 0;  
        rectangleGirth = (2 * length) + (2 * wide);  
        System.out.println("长方形的周长:" + rectangleGirth);  
    }  
}

//测试类
public class Test {  
    public static void main(String[] args) {  
        Round rd = new Round(1,3.14);  
        Rectangle re = new Rectangle(5,4);  
        rd.area();  
        rd.girth();  
        re.area();  
        re.girth();  
    }  
}
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 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、付费专栏及课程。

余额充值