类的继承和多态

实验目的:

掌握类的继承和多态、抽象类及接口基本功能

实验内容:

1、设计一个图形类(Graph),设计其子类二维图形和三维图形,二维图形计算面积,三维图形计算体积;设计二维图形的子类圆形、矩形、三角形和梯形,分别计算其面积;设计三维图形的子类圆、长方体,计算其体积

2、模拟动物园饲养员给动物喂食。每一种动物需要吃不同的食物,饲养员针对不同的动物,喂不同的食物。

动物园里有狗(狗吃骨头,会做算术)、猫(猫吃鱼,会跳环)、老虎(老虎吃肉,会顶球)

试采用普通方式、抽象类方式、接口方式来进行多态的实现

//创建类Graph

public class Graph {//圆形类

       double area;

       double volume;

       public double getArea() {

           return area;

       }

       public double getVolume () {

           return volume;

       }

}

//创建类Two_Dimension

public class Two_Dimension {//二维图

      double area;

       public double getArea(){

              return area;

       }
}

 

public class Bal extends Two_Dimension{

              double r;

              double area;

              public double getArea() {

              area = 3.14 * r * r;

              return area;

        }

}

class Rectangle extends Two_Dimension { //矩形继承二维图形

       double a;//长

       double b;//宽

       double area;

       public double getArea() {

           area = a * b;

           return area;

       }
}

//创建类Three_Dimension

public class Three_Dimension {//三维图

       double volume;

       public double getVolume () {

           return volume;

       }

}

class Ball extends Three_Dimension{ //球继承三维图形

        double r;

        double volume;

        public double getVolume() {

            volume = 4 / 3 * 3.14 * r * r * r;

            return volume;

        }

}

//创建主类:

package aa;

import java.util.*;

public class Mc {
    public static void main(String[] args) {

        Scanner scanner = new Scanner(System.in);

        Bal c1 = new Bal();

        Rectangle r1 = new Rectangle();

        Ball b1 = new Ball();

        System.out.print("请输入圆的半径:");

        c1.r = scanner.nextDouble();

        System.out.print("请输入矩形的长:");

        r1.a = scanner.nextDouble();

        System.out.print("请输入矩形的宽:");

        r1.b = scanner.nextDouble();

        System.out.print("请输入球的半径");

        b1.r = scanner.nextDouble();

        System.out.println("圆的面积为:"+ c1.getArea());

        System.out.println("矩形的面积为:"+ r1.getArea());

        System.out.println("球的体积为:"+ b1.getVolume());

   }

}

创建了6个类,有Graph;Two_Dimension;Three_Dimension;Bal,Rectanger;Ball;Mc

其中Bal,Rectanger继承了二维类Two_Dimension;Ball继承了三维类Three_Dimension

展现了类的多态性和继承性。

结果为:

 请输入圆的半径:2

请输入矩形的长:4

请输入矩形的宽:3

请输入球的半径:3

圆的面积为:12.56

矩形的面积为:12.0

球的体积为:84.78

//抽象类继承
//创建一个抽象类StrockMan 
public class StrockMan {
	public abstract void eat();
	public abstract  void action();
}
//创建一个类Cat继承StrockMan 
public class Cat {
	public void eat() {
		System.out.println("我要吃鱼~");
	}
	public void action() {
		System.out.println("我会跳环~");
	}
}

//创建一个类Dog继承StrockMan
public class Dog {
	public void eat() {
	    System.out.println("我吃骨头~");
	}

    public void action() {
	    System.out.println("我会算数~");
	}
}

//创建一个类Tiger继承StrockMan 
public class Tiger {
	public void eat() {
	    System.out.println("我要吃肉~");
	}
	public void action() {
	    System.out.println("我会顶球~");
	}
}
//创建一个类Main_Test
public class Main_Test {
    public static void main(String[] args) {
        Cat cat = new Cat();
        Dog dog = new Dog();
        Tiger tiger = new Tiger();
        System.out.println("我是猫~");
        cat.eat();
        cat.action();
        System.out.println();
        System.out.println("我是狗~");
        dog.eat();
        dog.action();
        System.out.println();
        System.out.println("我是老虎~");
        tiger.eat();
        tiger.action();
    }
}

 创建五个类:抽象类Strockman;子类Cat,Dog,Tiger;主类Main_Test

三个子类是父类是抽象类Strockman

运行结果是:

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_1_7

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值