第六周&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关键字实现接口。
接口没有构造方法,而且所有的方法必须是抽象方法。