我在我的程序中使用了实现继承,我的子类中的方法没有在主方法中被调用。它显示了错误“方法getArea()不在第二类型中定义”。getPerimeter()方法也有同样的问题。
我试过设置值和改变参数。
package firstproject;
import java.util.Scanner;
import java.util.Date;
import java.util.ArrayList;
public class Second{
public String color="red" ;
public boolean filled;
public Second() {
}
public Second(String tcolor, boolean tfilled) {
tcolor=color;
tfilled=filled;
}
public String getColor() {
return color;
}
public boolean getfilled() {
return filled;
}
public void setColor(String tcolor) {
tcolor=color;
}
public void setFilled(boolean tfilled) {
tfilled=filled;
}
public String toString() {
return "Color is =" +color+ " and it is filled or not = "
+filled;
}
class myclass extends Second {
double s1=1.0;
double s2=1.0;
double s3=1.0;
public myclass(){
}
public myclass(double s4, double s5, double s6) {
s4=s1;
s5=s2;
s6=s3;
}
double gets1() {
return s1;
}
double gets2() {
return s2;
}
double gets3() {
return s3;
}
public void sets1(double s4) {
s4=s1;
}
public void sets2(double s5) {
s5=s2;
}
public void sets3(double s6) {
s6=s3;
}
public double getArea() {
return (s2*s3)/2;
}
public double getPerimeter() {
return s1+s2+s3;
}
}
public static void main(String[] args) {
System.out.println("Enter the three sides = ");
Scanner input=new Scanner(System.in);
int side1=input.nextInt();
int side2=input.nextInt();
int side3=input.nextInt();
Second Triangle= new Second();
System.out.println("Enter the color = ");
String colo=input.next();
System.out.println("The boolean value = ");
String fil =input.next();
System.out.println("The area of the triangle is = "
+Triangle.getArea());
System.out.println("The perimeter of the triangle is = "
+Triangle.getPerimeter());
System.out.println("The color in which it is filled is = "
+Triangle.getColor());
System.out.println("If it is filled or not = "
+Triangle.getfilled());
}
}
It's showing the error "The method getArea() is not defined in type
Second". Also, the same stuff is happening with the getPerimeter()
method. So, I had the question of how to solve the code and is it an
error related to subclass? The question is something like:
(The Triangle class) Design a class named Triangle that extends
GeometricObject. The class contains:
■ Three double data fields named side1, side2, and side3 with
default values
1.0 to denote three sides of the triangle.
■ A no-arg constructor that creates a default triangle.
■ A constructor that creates a triangle with the specified side1,
side2, and
side3.
■ The accessor methods for all three data fields.
■ A method named getArea() that returns the area of this triangle.
■ A method named getPerimeter() that returns the perimeter of this
triangle.
■ A method named toString() that returns a string description for
三角形。有关计算三角形面积的公式,请参见编程练习2.15。toString()方法的实现如下:return“Triangle:side1=“side1”side2=“side2”side3=“side3;为类三角形和几何对象绘制UML图,并实现这些类。编写一个测试程序,提示用户输入三角形的三条边、颜色和布尔值,以指示三角形是否已填充。程序应该用这些边创建一个三角形对象,并使用输入设置颜色和填充属性。程序应显示面积、周长、颜色以及真或假,以指示是否填充。
实际上,我认为你正在混淆多态性和继承性。
Java继承
Java继承背后的思想是,可以创建基于现有类的新类。从现有类继承时,可以重用父类的方法和字段。此外,还可以在当前类中添加新方法和字段。
继承代表了
Java中的多态性
Java中有两种多态性:编译时多态性和运行时多态性。我们可以通过方法重载和方法重写在java中执行多态性。
如果你在Java中重载一个静态方法,它就是编译时多态性的例子。在这里,我们将关注java中的运行时多态性。
你在这里做的是继承。所以父类方法属性和方法继承给子类,反之亦然。在您的例子中,Second
是父类,myClass
是Second
类的子类。由于getArea
方法是在myClass
中定义的,它是一个子类,因此父类Second
没有关于getArea
方法的详细信息。所以你得到了这个错误。
我想用PHP在我的简单ORM中实现一个钩子系统: 这会导致一个致命错误: 致命错误:调用私人方法付款::before_save()从上下文'记录'中 有道理。 我可以将范围更改为public,但这似乎很难看:在保存()之前,除了支付之外,没有人与
问题内容: 这是一个有趣的代码片段: 我知道子类不会继承其父级的私有成员,但是obj设法在其中调用它不应具有的访问权的方法。在编译时,obj是Superclass类型,在运行时是Subclass类型。 这可能与以下事实有关:对doSomething()的调用发生在驱动程序类内部,而该驱动程序类恰好是其自己的类(以及为什么可以首先调用doSomething()的原因)。 因此问题归结为,obj如何访
我有一个扩展了B类的a类。 A是这样定义的,它也覆盖了B的方法: B是这样定义的: 因此,如果我初始化A的一个对象,构造函数将调用调用方法doSomething()的超类之一。但哪一个会被处决?B的实现还是A中被重写的实现?
问题内容: 我对在继承中使用私有方法感到困惑,例如: 基于上面的代码,我感到困惑的私有方法的继承,是继承了私有方法来?还是两个类中的say方法完全无关?由于代码在main()方法中运行时出错,因此似乎无法从中调用私有方法。 问题答案: 如果您想让子类访问需要保留的超类方法,那么您正在寻找的关键字。 只允许包含该成员的类访问该成员。 允许在类及其所有子类中访问成员。 允许任何人访问该成员。
问题内容: 假设我有以下两个课程 如果我启动一个beta类型的新对象,如何执行在alpha类而不是beta中找到的逻辑?我可以使用<-我想知道是否可行。 Eclipse IDE中的自动键入功能使我可以选择从class 或class中进行选择。 问题答案: 你可以做: 注意,这是对父级的引用,但是super()是它的构造函数。
嘿,我正在尝试调用子类方法(ChildClass扩展了超类()) 它没有看到ChildClass方法,我只能调用SuperClass()中的方法,我知道这可能是一个愚蠢的问题,但无论如何干杯