Experiments four types of inheritance
I. Purpose
Inherited methods (1) master class
Inherited, reload and the cover and cover inheritance, the method (2) of variable realization
II. Experimental content
III. Experimental procedure
(1)
Experimental Code
package Yuan;
import java.util.*;
class Circle{
private double radius;
public Circle(){
this.setRadius(0);
}
public Circle(double r) {
this.setRadius(r);
}
public void setRadius(double r) {
radius = r;
}
public double getRadius() {
return radius;
}
public double getPerimeter() {
return 2*Math.PI*radius;
}
public double getArea(){
return Math.PI*radius*radius;
}
public void disp() {
System.out.print("圆的半径:"+radius);
System.out.print("圆的周长:"+2*Math.PI*radius);
System.out.println("圆的面积:"+Math.PI*radius*radius);
}
}
public class Yuan{
public static void main(String[] args) {
Circle yuan=new Circle();
yuan.disp();
System.out.print("圆的半径:");
Scanner a=new Scanner(System.in);
double r=a.nextDouble();
Circle yuan2=new Circle(r);
yuan2.disp();
}
}
Screenshot results
(2)
Experimental Code
package Yuan;
import java.util.*;
class Circle{
private double radius;
public Circle(){
this.setRadius(0);
}
public Circle(double r) {
this.setRadius(r);
}
public void setRadius(double r) {
radius = r;
}
public double getRadius() {
return radius;
}
public double getPerimeter() {
return 2*Math.PI*radius;
}
public double getArea(){
return Math.PI*radius*radius;
}
public void disp() {
System.out.print("圆的半径:"+radius);
System.out.print("圆的周长:"+2*Math.PI*radius);
System.out.println("圆的面积:"+Math.PI*radius*radius);
}
}
class Cylinder extends Circle{
private double height;
public Cylinder(double r,double h) {
super(r);
this.setHeight(h);
}
public void setHeight(double h) {
height=h;
}
public double getHeight() {
return height;
}
public double getVol() {
return getArea()*height;
}
public void dispVol() {
System.out.println("圆柱体体积:"+getVol());
}
}
public class Yuan2{
public static void main(String[] args) {
Cylinder yuan3=new Cylinder(2,3);
yuan3.dispVol();
}
}
Screenshot results
(3)
Experiment Code
package Yuan;
import java.util.*;
class Circle{
private double radius;
public Circle(){
this.setRadius(0);
}
public Circle(double r) {
this.setRadius(r);
}
public void setRadius(double r) {
radius=r;
}
public double getRadius() {
return radius;
}
public double getPerimeter() {
return 2*Math.PI*radius;
}
public double getArea(){
return Math.PI*radius*radius;
}
public void disp() {
System.out.print("圆的半径:"+radius);
System.out.print("圆的周长:"+2*Math.PI*radius);
System.out.println("圆的面积:"+Math.PI*radius*radius);
}
}
class Cylinder extends Circle{
private double height;
public Cylinder(double r,double h) {
super(r);
this.setHeight(h);
}
public void setHeight(double h) {
height=h;
}
public double getHeight() {
return height;
}
public double getVol() {
return getArea()*height;
}
public void dispVol() {
System.out.println("圆柱体体积:"+getVol());
}
}
public class Yuan3{
public static void main(String[] args) {
System.out.print("圆柱体半径:");
Scanner a=new Scanner(System.in);
double r=a.nextDouble();
System.out.print("圆柱体的高:");
Scanner a1=new Scanner(System.in);
double h=a1.nextDouble();
Cylinder yuan3=new Cylinder(r,h);
yuan3.dispVol();
}
}
Screenshot experiment
Experimental Summary:
这周的实验题和第二周有点相似,但是加了关于继承的一些知识点。在第二题中,实例化对象加了两个具体的参数,这个是我学到的新知识,但是感觉还不能实践运用。在实
验过程中,老是会出现报错,但是不会影响运行。感觉我的代码还是很不规范,还需要改进。
在题目中,圆周率刚开始不会写,后来百度发现Math.PI表示圆周率。
summarize:
Class inheritance formats:
class 父类{}
class 子类 extends 父类{}
Not only allows multilayer inheritance multiple inheritance
多重继承:一个子类只能继承一个父类。
多层继承:一个子类能有一个父类,一个父类还可以有一个父类。