Experiment Report IV and summary

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

    多重继承:一个子类只能继承一个父类。
    多层继承:一个子类能有一个父类,一个父类还可以有一个父类。

Subclass the parent class can not directly access private members, but the parent class of non-private methods can be called.

Guess you like

Origin www.cnblogs.com/hltltp/p/11609865.html