第六周课程总结&试验报告(四)

Java实验报告

 

实验四类的继承

一、 实验目的

(1)       掌握类的继承方法;

(2)       变量的继承和覆盖,方法的继承、重载和覆盖实现;

二、 实验内容

 

 

三、实验过程(请自己调整格式)

代码:

 
 1 package com.company;
 2 
 3 public class Circle
 4 {
 5    double radius,perimeter,area;
 6 
 7     Circle()                                     //构造Circle()对象
 8     {
 9         radius = 0;
10     }
11     Circle(double r)
12     {
13         radius = r;                              //将半径初始化为r
14     }
15     double getRadius()
16     {
17        return radius;                            //获得圆的半径
18     }
19     double getPerimeter()
20     {
21        return 2*Math.PI*radius;                   //获得圆的周长
22     }
23     double getArea()
24     {
25        return radius*radius*Math.PI;              //获得圆的面积
26     }
27 
28    public void disp()                               //disp函数会直接将内容输出
29    {
30        perimeter = getPerimeter();
31        area = getArea();
32        System.out.print("圆的半径为:"+radius+"\n"+"周长:"+perimeter+"\n"+"面积为:"+area);
33    }
34    public  static void main(String[] args)
35    {
36        double radius = 1.0;
37        Circle c =new Circle(radius);         //将全部radius变为Circle
38        c.disp();
39    }
40 }

 

 

 运行结果:

 代码:

 1 package com.company;
 2 
 3 class Circle
 4 {
 5     double radius,perimeter,area;
 6 
 7     Circle()                                     
 8     {
 9         radius = 0;
10     }
11     Circle(double r)
12     {
13         radius = r;                              
14     }
15     double getRadius()
16     {
17         return radius;                           
18     }
19     double getPerimeter()
20     {
21         return 2*Math.PI*radius;                   
22     }
23     double getArea()
24     {
25         return radius*radius*Math.PI;             
26     }
27 
28     public void disp()                               
29     {
30         perimeter = getPerimeter();
31         area = getArea();
32         System.out.print("圆的半径为:"+radius+"\n"+"周长:"+perimeter+"\n"+"面积为:"+area);
33     }
34     public void CC()                                //构造函数,输出我想要数值
35     {
36         double radius = 1.0;
37         Circle c =new Circle(radius);         
38         c.disp();
39     }
40 }
 1 package com.company;
 2 
 3 public class Cylinder extends Circle
 4 {
 5     private double height;
 6     public Cylinder(double h,double r)
 7     {
 8         this.radius = r;
 9         this.height = h;
10     }
11     public double getHeight()
12     {
13         return this.height;
14     }
15     public double getVol()
16     {
17         return radius*radius*Math.PI*height;
18     }
19     public void disp()
20     {
21         double Vol = getVol();
22         System.out.println("圆柱体的体积为:"+Vol);
23     }
24     public static void main(String[] args)
25     {
26         Cylinder cy =new Cylinder(2.0,1.0);
27         cy.disp();
28         cy.CC();                                 //调用父类里的函数
29     }
30 }

运行结果:

 遇到的问题:

做完Circle类还是很容易,当做到Cylinder类,我类比Circle类的代码,但是在运行时,它的结果还是Circlel类的结果(父类和子类都在同一个文件夹里),但,把父类和子类的代码合并在一起,运行的结果就只有子类的答案。

 

 

 

 问题原因:

public statci void main (String[] args)是主函数入口,在继承无需添加

 

 

 

 

四、结论

转载于:https://www.cnblogs.com/TheMatrixOfTYY/p/11604630.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值