当前位置: 首页 > 知识库问答 >
问题:

子类给我“符号找不到”的抽象类错误

靳举
2023-03-14

所以我拿了一些我的compsci教授的例子类,并试图编译他们了解更多关于它,但我得到一个“符号没有找到”的错误。所有的文件都在同一个文件夹里。谁能告诉我怎么解决这件事或者是怎么回事?

下面是抽象类:

    package abstractclass;

/**
   The Element class is introduced to illustrate the use of
    abstract classes.  In this revised version of the PersonSet
    class example, the Person class will inherit from this
    abstract class.  The purpose of the abstract class Element
    is to introduce the "common class protocol" for all of its
    subclasses.  That common class protocol is introduced using
    abstract as well as fully implemented methods.  The abstract
    methods are:
                  readIn
                  display
                  equals
                  clone
    In addition, the abstract class Element fully implements the
    getClassName method.
*/

    public abstract class Element
   {

   // Access method

   /**
      The getClassName method returns the name of the calling object's
    class.
    @return the name of the calling object's class
   */

       public String getClassName()
      {
         // Local data ...
         String resultStr;
                       // Result of applying toString method to
                          // the calling object
         int whereAt;  // Where the @ symbol is in resultStr

         // Logic ...
         resultStr = this.toString();
         whereAt = resultStr.indexOf('@');
         resultStr = resultStr.substring(0,whereAt);
         whereAt = resultStr.indexOf('.');
         return resultStr.substring(whereAt + 1);
      }

      // Abstract methods readIn, display, equals and clone.
      // A direct subclass must implement these abstract methods
    // unless the direct subclass is itself declared "abstract"

       public abstract void readIn();

       public abstract void display();

       public abstract boolean equals(Element dobj);

       public abstract Element clone();
   }

下面是子类Person:

        package abstractclass;

import java.util.Scanner;
import java.util.*;

    public class Person extends Element
   {
      private String name;        
      private String eMail;       

       public Person()
      {
         name = "";
         eMail = "";
      }

       public Person (String aName)
      {
         name = new String(aName.toUpperCase());
      }

       public Person (Person originalPerson)
      {
         name = new String(originalPerson.name);
         eMail = new String(originalPerson.eMail);
      }

       public String getName()
      {
         return new String(name);
      }

       public String getEMail()
      {
         return new String(eMail);
      }

       public void setName(String aName)
      {
         name = new String(aName.toUpperCase());
      }

       public void setEMail(String anEMail)
      {
         eMail = new String(anEMail);
      }

       public void readIn()
      {
         Scanner keyboard = new Scanner(System.in);
         System.out.print("Name:   ");
         name = keyboard.nextLine().toUpperCase();
         System.out.print("E-Mail: ");
         eMail = keyboard.nextLine();
      }

       public void display()
      {
         System.out.println("Name:   " + name);
         System.out.println("E-mail: " + eMail);
      }

       public boolean equals(Element otherPerson)
      {
         return name.equals(((Person) otherPerson).name);
      }

       public Element clone()
      {
         Person theClone = new Person();
         theClone.name = new String(name);
         theClone.eMail = new String(eMail);
         return theClone;
      }

下面是当我尝试编译person类时它给我的错误:

    Person.java:13: error: cannot find symbol
    public class Person extends Element
                                ^
  symbol: class Element
Person.java:147: error: cannot find symbol
       public boolean equals(Element otherPerson)
                             ^
  symbol:   class Element
  location: class Person
Person.java:158: error: cannot find symbol
       public Element clone()
              ^
  symbol:   class Element
  location: class Person
3 errors

共有1个答案

艾修然
2023-03-14

确保这两个类都按照编译器的预期在一个名为abstractClass的文件夹中。编译器在定位从属类时期望文件夹名与包名匹配。

 类似资料:
  • 我下载了一个Android项目,但我得到了这个错误: 样品导入: 样品用法: 代码时没有错误,但在编译时我得到了我提到的错误。 当我尝试在Android Studio上进行定义时,我不能。 应用程序级生成。格拉德尔: 我试着清理和重建这个项目,但还没有成功。 谢谢你的帮助。

  • 我是Android应用程序开发的新手,所以请耐心等待我。我正在编写一个应用程序,该应用程序从Google Play服务获取GPS位置,然后通过蓝牙广播数据。我有一个获取位置的位置活动,以及一个广播数据的 AdvertisingActivity。 我的问题是我很难理解Android应用程序中的文件结构,所以我怀疑我缺乏理解是我遇到错误的原因。 下面是位置活动的一个代码段,其中错误是: 为什么编译器找

  • 我有一个子类,它声明了我的抽象超类中的所有方法,但它仍然给我一个错误,说明我的类不是抽象的。我不知道为什么会抛出这个错误。 我得到的具体错误是 PhoneBookEntry.java: 1:错误:PhoneBookEntry不是抽象的,并且不会覆盖可比中的抽象方法compareTo(Object) 我的问题代码: 还有我的子类:

  • 我有一个包含两个类的java包。A类和B类。我需要在B类中创建一个A类型的对象。我不知道发生了什么。请谁帮帮我。 包装; A类 B类 我用的是JDK1。5和tomcat,并将它们放在我的D驱动器的java文件夹中。 D:\java\jdk1。5. D:\java\tomcat 现在,我的包裹文件夹也在上面的位置 D:\java\pack 下面是我如何编译我的java类文件。 步骤1:编译A.jav

  • 问题内容: 我正在尝试了解@AutoValue。我遵循https://github.com/google/auto/blob/master/value/userguide/index.md中的示例 我正在使用Android Studio 3.4 我添加我的gradle依赖 我也在用 和 我的代码如下 和 当我运行测试时,它会出错 我错过了什么? 在https://github.com/elye/i