一.实验目的
(1)掌握类的继承
(2)变量的继承和覆盖,方法的继承,重载和覆盖的实现;
一:特性继承性。
1)继承格式
2)可以通过子类扩展父类
3)只允许多层继承,不允许多重继承。
4)子类不能直接访问父类中的私有操作,但可以通过get方法访问。
5)子类构造方法中的super()。一般写类的时候要构造一个空方法,因为一般子类对象实例化之前会先默认调用父类中的构造方法,如果父类中没有构造方法,就会默认调用一个空的构造方法。 super()就是调用父类构造方法的语句。
二:方法的覆写和重载
三、final关键字(表示的意思是最终的意思,也可以称为完结器)
1)使用final声明的类不能有子类
2)使用final声明的方法不能被子类所覆写
3)使用final声明的变量级成为常量,常量不可以修改
四、抽象类
1)访问权限 abstract 返回值类型 方法名称(参数);
2)抽象类和抽象方法都要使用abstract关键字声明
3)抽象方法只需声明而不需要实现
4)抽象类必须被子类继承,子类(如果不是抽象类)必须填写抽象类中的全部抽象方法
五、对象的多态性
1)向上转型:子类对象→父类对象(自动转换)
2)向下转型:父类对象→子类对象(强制转换)
二.实验的内容
(1)根据下面的要求实现圆类Circle。
1.圆类Circle的成员变量:radius表示圆的半径。
2.圆类Circle的方法成员:
Circle():构造方法,将半径置0
Circle(double r):构造方法,创建Circle对象时将半径初始化为r
double getRadius():获得圆的半径值
double getPerimeter():获得圆的周长
void disp():将圆的半径和圆的周长,圆的面积输出到屏幕
(2)继承第一题中的圆Circle类,派生圆柱体类Cylinder。要求如下:
1.圆柱体类Cylinder的成员变量:height表示圆柱体的高。
2.圆柱体类Cylinder的成员方法:
Cylinder(double r,double h)构造方法,创建Cylinder对象时将圆半径初始化为r,圆柱体高初始化为h。
double getHeight():获得圆柱体的高
double getVol():获得圆柱体的体积
void dispVol():将圆柱体的体积输出到屏幕
3.按照第二题的Cylinder类,接上键盘的输入值作为圆的半径和圆柱体的高,计算圆柱体的体积
实验代码
public class Circle { private double radius; public double getRadius() { return radius; } public void setRadius(double radius) { this.radius = radius; } public Circle() { this.radius=0; } public Circle(double radius) { this.radius = radius; } public double getPerimeter() { double perimeter=2*radius*3.1415926; return perimeter; } public double getArea() { double area=radius*radius*3.1415926; return area; } public void disp() { System.out.println("半径:"+radius); System.out.println("周长:"+getPerimeter()); System.out.println("面积:"+getArea()); } }
public class Cylinder extends Circle{ private double height; public double getHeight() { return height; } public void setHeight(double height) { this.height = height; } public Cylinder(double radius, double height) { super(radius); this.height = height; } public double getVol() { double vol=super.getArea()*height; return vol; } public void disp() { super.disp(); System.out.println("体积:"+getVol()); } }
public class Text{ public static void main(String[] args) { Cylinder cyl1=new Cylinder(5,7); cyl1.disp(); } }
运行截图
学习总结