Java实验报告
班级 计科2班 学号 20188416 姓名 刘硕
完成时间
评分等级
实验四 类的继承
实验目的
掌握类的继承方法;
变量的继承和覆盖,方法的继承、重载和覆盖实现;
实验内容
实验源码:
package Tree;
import java.util.Scanner;
class Circle{
private double radius; //对半径进行定义和封装
public Circle() {
setRadius(0); //第一个构造方法
}
public Circle(double r) {
setRadius(r); //第二个构造方法
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getPerimeter() {
return 2*Math.PI*getRadius(); //取得周长
}
public double getArea(){
return Math.PI*getRadius()*getRadius(); //取得面积
}
public void disp() {
System.out.println("圆的半径为:"+getRadius());
System.out.println("圆的周长为:"+getPerimeter());
System.out.println("面积为:"+getArea());
}
}
public class Green{
public static void main(String args[]) {
Scanner rad=new Scanner(System.in);
Circle cir=new Circle(); //声明并实例化对象
cir.disp();
System.out.println("请输入半径:");
double r=rad.nextDouble();
cir.setRadius(r); //调用第二个构造方法
cir.disp();
}
}
运行结果:
实验源码:
package Tree;
import java.util.Scanner;
class Circle{
private double radius; //对半径进行定义和封装
public Circle() {
setRadius(0); //第一个构造方法
}
public Circle(double r) {
setRadius(r); //第二个构造方法
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public double getPerimeter() {
return 2*Math.PI*getRadius(); //取得周长
}
public double getArea(){
return Math.PI*getRadius()*getRadius(); //取得面积
}
public void disp() {
System.out.println("圆的半径为:"+getRadius());
System.out.println("圆的周长为:"+getPerimeter());
System.out.println("面积为:"+getArea());
}
}
class Cylinder extends Circle {
private double height;
public double getHeight() {
return height; //取得圆柱体的高
}
public void setHeight(double height) {
this.height = height; //设置圆柱的高
}
public Cylinder(double r,double h) {
setRadius(r); //调用父类的方法
setHeight(h);
}
public double getVol() {
return Math.pow(getRadius(),2)*Math.PI*getHeight(); //取得圆柱体积
}
public void dispVol() {
System.out.println("圆柱体的体积为:"+getVol());
}
}
public class Green{
public static void main(String args[]) {
Scanner rad=new Scanner(System.in);
System.out.println("请输入半径:");
double r=rad.nextDouble();
System.out.println("请输入圆柱的高:");
double h=rad.nextDouble();
Cylinder vol=new Cylinder(r,h);
vol.disp();
vol.dispVol();
}
}
运行结果:
四、总结
通过对属性的封装,类的继承等的学习,我知道了他们书写格式以及各自的作用。但是在编写代码的过程中并不能自然的写出,需要我翻书找到相应的例子才能写出,
希望能够进行更多练习得到提高。
1、接口
1)定义
interface 接口名称{
}
2)实现
class 子类 implements 接口A,接口B····{
}
2、对象的多态性
对象的多态性主要分两种类型:
1)向上转型:子类对象->父类对象
2)向下转型:父类对象->子类对象
对象转型
对象向上转型:父类 父类对象=子类实例
对象向下转型:子类 子类对象=(子类)父类实例
对于向上转型,程序会自动完成,而对于向下转型时,必须明确的指明要转型的子类类型。