子类调用父类中同名函数

问题描述

importjava.util.Scanner;classCircle{intR;publicstaticfinaldoublePI=3.14;publicCircle(intr){R=r;}publicdoublegetArea(){returnPI*R*R;}publicdoublegetPerimeter(){return2*PI*R;}}classCylinderextendsCircle{intH;publicCylinder(intr,inth){super(r);H=h;}publicdoublegetArea(){returngetPerimeter()*H+2*super.getArea();}publicdoublegetVolume(){returngetArea()*H;}}classTestsuper{publicstaticvoidmain(Stringargs[]){Scannerscanner=newScanner(System.in);intR=scanner.nextInt();intH=scanner.nextInt();Cylindere=newCylinder(R,H);System.out.println("圆柱体的表面积="+e.getArea());System.out.println("圆柱体的体积="+e.getVolume());Circlet=newCylinder(R,H);System.out.println("圆的周长="+t.getPerimeter());System.out.println("圆的面积="+t.getArea());}}找出错误,圆柱体的表面积和圆的面积相等!

解决方案

解决方案二:
先贴代码,问题在于测试类中:importjava.util.Scanner;classTestsuper{publicstaticvoidmain(Stringargs[]){Scannerscanner=newScanner(System.in);System.out.println("请输入圆的半径:");intR=scanner.nextInt();System.out.println("请输入圆柱的高度:");intH=scanner.nextInt();Cylindere=newCylinder(R,H);System.out.println("圆柱体的表面积="+e.getArea());System.out.println("圆柱体的体积="+e.getVolume());Circlet=newCircle(H);System.out.println("圆的周长="+t.getPerimeter());System.out.println("圆的面积="+t.getArea());}}

楼主的Cylindere=newCylinder(R,H);Circlet=newCylinder(R,H);这2句,请楼主仔细看看。不管是对象e还是t都是Cylinder类型的,区别就是在调用时候用了多态。对于求面积的话,根本不需要用到高。所以,请楼主仔细看看区别。
解决方案三:
那是否可以用子类创建对象来调用父类呢?

时间: 2024-08-07 05:20:30

子类调用父类中同名函数的相关文章

重写-JAVA中子类覆盖了父类的方法,是否还有办法通过子类调用父类同一方法?

问题描述 JAVA中子类覆盖了父类的方法,是否还有办法通过子类调用父类同一方法? JAVA中子类覆盖了父类的方法,是否还有办法通过子类调用父类同一方法? 解决方案 使用super.methodName();调用. Java中super关键字指代的是父类. this关键字指代的是自身. 解决方案二: 用super.方法名调用 解决方案三: 试试super.xxx 解决方案四: 直接用super.方法名调用对应的方法

转型-关于如何通过子类调用父类的父类中的方法

问题描述 关于如何通过子类调用父类的父类中的方法 package access; class A{ public A(){System.out.println("A created!");} public int f(){ System.out.println("call A.f()"); return 1; } } class B extends A{ public int f(){ System.out.println("call B.f()"

java 某个类的几个对象,这些对象调用类中一个函数,是各自拥有自己的函数代码还是使用同一段代码?

问题描述 1.java 某个类的几个对象,这些对象调用类中一个函数(普通的函数),是各自拥有自己的函数代码还是使用同一段代码?2.java 继承中,子类从父类得到一些普通函数,这些函数的代码,是子类自己独自拥有一份还是和父类使用同一段函数代码.3.第一次发帖,积分什么的不会搞,貌似自己也没有积分,呵呵,大家包涵! 解决方案 引用1.java 某个类的几个对象,这些对象调用类中一个函数(普通的函数),是各自拥有自己的函数代码还是使用同一段代码?这几个对象调用的当然是同一段代码了.jvm中有一个ja

Python实现子类调用父类的方法_python

本文实例讲述了Python实现子类调用父类的方法.分享给大家供大家参考.具体实现方法如下: python和其他面向对象语言类似,每个类可以拥有一个或者多个父类,它们从父类那里继承了属性和方法.如果一个方法在子类的实例中被调用,或者一个属性在子类的实例中被访问,但是该方法或属性在子类中并不存在,那么就会自动的去其父类中进行查找. 继承父类后,就能调用父类方法和访问父类属性,而要完成整个集成过程,子类是需要调用的构造函数的. 子类不显式调用父类的构造方法,而父类构造函数初始化了一些属性,就会出现问题

利用VC调用动态链接库中的函数

自从微软推出16位的Windows操作系统起,此后每种版本的Windows操作系统都非常依赖于动态链接库(DLL)中的函数和数据,实际上Windows操作系统中几乎所有的内容都由DLL以一种或另外一种形式代表着,例如显示的字体和图标存储在GDI DLL中.显示Windows桌面和处理用户的输入所需要的代码被存储在一个User DLL中.Windows编程所需要的大量的API函数也被包含在Kernel DLL中.在Windows操作系统中使用DLL有很多优点,最主要的一点是多个应用程序.甚至是不同

子类调用父类方法的问题

问题描述 子类调用父类方法的问题 父类: package com.example.main;public class Parent { public void print(){ System.out.println(this); }} 子类: package com.example.main;public class Childer extends Parent { public static void main(String[] args) { new Childer().print(); }

iOS重写父类中的方法时要先调用父类中的方法的原因

现有两个类: 1.Object001继承自NSObject #import <Foundation/Foundation.h>   @interface Object001 : NSObject   //Object001的头文件,我只是在这里面声明了个方法 -(void)printfString;   @end   #import "Object001.h"   @implementation Object001   //Object001的实现文件,我实现了声明的pri

link中是不是只能调用sqlfunctions中的函数?能不能给sqlfunctions增加函数?

问题描述 link中是不是只能调用sqlfunctions中的函数?能不能给sqlfunctions增加函数? link中是不是只能调用sqlfunctions中的函数?能不能给sqlfunctions增加函数? 解决方案 可以调用自定义函数,不过前提是函数要在sql里面实现 参考:http://www.cnblogs.com/lyj/archive/2008/03/19/1112356.html 否则只能先用AsEnumerable转换成Linq to Objects,再执行.

在CPP中调用Jscript中的函数

js|jscript|函数 在CPP中调用Jscript中的函数   在C++中调用Jscript的函数非常简单,Windows提供了一个msscript.ocx的控件,利用这个控件可以直接操作Jscript: 执行一段Jscript脚本,或者调用指定的函数.我写了一个简单的例子:   l         导入msscript.ocx.下面这条指令会在项目目录中生成msscript.tli和msscript.tlh两个文件,里面有msscript.ocx中所有接口的描述和IID的定义. #imp