第六周&java实验报告四

实验四:类的继承

实验目的:

(1)掌握类的继承方法;
(2)变量的继承和覆盖,方法的继示、重载和覆盖实现;

二、实验内容

(1)根据下面的要求实现圆类Circle.

①圆类Cirle的成员变量: radius 表示圆的半径。
②圆类Cirdle的方法成员:
Circle () :构造方法,将半径置0
Circle (doubler) :构造方法:
创建Circle对象时将半径初始化为r
double getRadius () :获得圆的半径值
double getPerimeter () :获得圆的周长
void disp O :将圆的半径、圆的周长和圆的面积输出到屏幕

(2)维承第(1)题中的圆Circle类,派生圆柱体类Cylinder。要求如下:

①圆柱体类Cylinder的成员变量: height 表示圆柱体的高。
②圆柱体类Cylinder的成员方法:Cylinder (doubler, double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱高初始化为h

  double getHecight () :获得圆柱体的高
  double getVol () :获得圆柱体的体积
  void dispVol () :将圆柱体的体积输出到屏幕

(3)按照第(2)题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积。

1.实验代码

import java.util.Scanner;

class Circle {
    private static double radius;
    
    public Circle() {
        Circle.radius = 0;
    }
    
    public Circle(double r) {
        Circle.radius = r;
    }

    public static  double getPerimeter() {
        return 2*(Math.PI)*radius;
    }
    
    public static double getArea() {
        return Math.pow(radius, 2)*Math.PI;
    }
    
   
    public static void main (String args[]) {
    	@SuppressWarnings("resource")
		Scanner s = new Scanner(System.in);
        System.out.print("输入半径:");
        new Circle(s.nextInt());
        System.out.println("圆的周长为:"+getPerimeter()+"\n圆的面积为:"+getArea());
        s.close();
    }
}

这题老师上课讲过,不是很难。

2.3题实验代码

import java.util.Scanner;

public class Cylinder extends Circle {
	private static double height;
	
	public Cylinder(double r,double h) {
		super(r);
		Cylinder.height=h;
	}

	public double getHeight() {
		return height;
	}

	public void setHeight(double height) {
		Cylinder.height = height;
	}
	public static double getVolume() {
		return getArea()*height;
	}

	public static void main(String[] args) {
		Scanner s = new Scanner(System.in);
		System.out.print("输入的半径和高分别为:");
		new Cylinder(s.nextDouble(),s.nextDouble() );
		
		
		System.out.println("圆柱体的体积为:"+getVolume());
	}


}


总结

抽象类

如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。
抽象类不能用final声明。
抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。
抽象方法只需要声明不需要实现,就是后面不要花括号。
如果一个类包含抽象方法,那么该类必须是抽象类。任何子类必须重写父类的抽象方法。

接口

是一个抽象类型,是抽象方法的集合,接口通常以interface来声明,接口可以继承多个接口。
接口要使用必须要子类也叫实现类,子类通过implements关键字实现接口。
接口没有构造方法,而且所有的方法必须是抽象方法。

posted on 2019-10-07 11:45  hmdrgql  阅读(212)  评论(0编辑  收藏  举报