###一.实验目的java
####(1)掌握类的继承函数
一、子类继承父类中非private的成员变量和成员方法,同时,注意构造方法不能被子类继承。 二、定义类时若缺省extends关键字,则所定义的类为java.lang.Object类的直接子类。 在Java语言中,一切类都是Object类的直接或间接子类。 三、Java仅支持单重继承,即一个类至多只有一个直接父类。在Java中经过接口来实现多重继承。 四、父类中定义的private成员变量和方法不能被子类继承,所以在子类中不能直接使用。咱们能够在父类中定义公共的访问方法和修改方法,子类能够经过这些方法来实现访问和修改。this
####(2)变量的继承和覆盖,方法的继承,重载和覆盖的实现;code
① 父类与子类之间的多态性,对父类的函数进行从新定义。若是在子类中定义某方法与其父类有相同的名称和参数,咱们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不须要从新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想做必定的修改,这就须要采用方法的重写。方法重写又称方法覆盖。 ② 若子类中的方法与父类中的某一方法具备相同的方法名、返回类型和参数表,则新方法将覆盖原有的方法。如需父类中原有的方法,可以使用super关键字,该关键字引用了当前类的父类。 ③子类函数的访问修饰权限不能少于父类的 重写方法的规则: 1.参数列表必须彻底与被重写的方法的相同,不然不能称其为重写而是重载. 2.返回的类型必须一直与被重写的方法的返回类型相同,不然不能称其为重写而是重载. 3.访问修饰符的限制必定要大于被重写方法的访问修饰符(public>protected>default>private) 4.重写方法必定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常.例如, 父类的一个方法申明了一个检查异常IOException,在重写这个方法是就不能抛出Exception,只能抛出IOException的子类异常,能够抛出非检查异常.对象
而重载的规则: 1.必须具备不一样的参数列表; 2.能够有不一样的返回类型,只要参数列表不一样就能够了; 3.能够有不一样的访问修饰符; 4.能够抛出不一样的异常;blog
###二.实验的内容继承
(1)根据下面的要求实现圆类Circle。接口
1.圆类Circle的成员变量:radius表示圆的半径。 2.圆类Circle的方法成员: Circle():构造方法,将半径置0 Circle(double r):构造方法,建立Circle对象时将半径初始化为r double getRadius():得到圆的半径值 double getPerimeter():得到圆的周长 void disp():将圆的半径和圆的周长,圆的面积输出到屏幕get
####实验代码:io
package o; public class a { private Double radius; public a() { } public a(double r){ this.radius = r; } public double getRadius(){ return radius; } public double getPerimeter(){ return 2*radius*Math.PI; } public double gerArea(){ return Math.PI*Math.pow(radius,2); } public void disp(){ System.out.println("圆的半径为: " + this.getRadius()); System.out.println("圆的周长为: " + this.getPerimeter()); System.out.println("圆的面积为: " + this.gerArea()); } public static void main(String[] args) { a c =new a(2.0); c.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类,接上键盘的输入值做为圆的半径和圆柱体的高,计算圆柱体的体积
####实验代码:
package o; public class a { double height; double radius; public a(double r,double h){ radius = r; height = h; } public double getRadius() { return radius;} public double getHeight() { return height;} public double getVol() { return Math.PI*Math.pow(radius,2)*height;} public static void main(String[] args) { a b = new a(0,0); b.radius = 5.0; b.height = 5.0; System.out.printf("r" +b.getRadius()); System.out.printf("h" +b.getHeight()); System.out.printf("v" +b.getVol()); } }
####实验截图
###总结 题目对我来讲有点难,问了室友才弄出来的。。