gpt4 book ai didi

java - 继承中的方法调用出现问题

转载 作者:行者123 更新时间:2023-12-02 09:31:29 24 4
gpt4 key购买 nike

我在程序中使用了继承,并且子类中的方法没有在主方法中调用。它显示错误“方法 getArea() 未在类型 Second 中定义”。 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 "三角形: side1 = "+ side1 + "side2 = "+ side2 + “边 3 = ” + 边 3; 绘制 Triangle 和 GeometricObject 类的 UML 图 并实现类(class)。编写一个测试程序,提示用户输入 三角形的三条边、一种颜色和一个 boolean 值,用于指示是否 三角形被填充。程序应该用这些创建一个 Triangle 对象 边并使用输入设置颜色和填充属性。该程序 应显示面积、周长、颜色以及真假以指示是否 是否已满。

最佳答案

认为您对多态性继承感到困惑。

Java 中的

继承是一种机制,其中一个对象获取父对象的所有属性和行为。它是OOP(面向对象编程系统)的重要组成部分。

Java 继承背后的思想是您可以创建基于现有类的新类。当您从现有类继承时,您可以重用父类的方法和字段。此外,您还可以在当前类中添加新方法和字段。

继承代表 IS-A 关系,也称为父子关系。

Java 中的

多态性是一个概念,通过它我们可以以不同的方式执行单个操作。多态性源自两个希腊单词:poly 和 morphs。 “poly”一词的意思是“许多”,“morphs”的意思是“形式”。所以多态意味着多种形式。

Java中的多态性有两种类型:编译时多态性和运行时多态性。我们可以通过方法重载和方法覆盖来实现java中的多态性。

如果在Java中重载静态方法,这就是编译时多态性的例子。在这里,我们将重点关注java中的运行时多态性。

您在这里所做的是继承。因此,父类方法属性和方法会继承给子类,反之亦然。在你的情况下Second是父类并且 myClassSecond 的子类类(class)。如getArea方法定义于 myClass ,这是一个子类,所以父类Second没有关于 getArea 的详细信息方法。所以您会收到此错误。

关于java - 继承中的方法调用出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57929656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com