繁体   English   中英

无法通过子 class 访问父 class 方法

[英]Not able to access the parent class methods via child class

这是我的代码:

static class Developer
{
String Name;
String Language;
int Years;
int Age;


void Company ()
{
  System.out.println (Name + " Codes in " + Language + " & has " + Years +
          " Years of experience" + ", He is " + Age + " Old");
}

public Developer ()
{
  System.out.println ("Hello");
}

public Developer (String Name, String Language, int Years, int Age)
{
  this ();
  this.Name = Name;
  this.Language = Language;
  this.Years = Years;
  this.Age = Age;
}


class Analyst extends Developer
{
  public Analyst (String Name, String Language, int Years, int Age)
  {
super (Name, Language, Years, Age);
  }
}
} 

public static void main (String[]args)
{

Developer d1 = new Developer ();
d1.Name = "John";
d1.Language = "Java";
d1.Years = 2;
d1.Age = 22;

Developer d2 = new Developer ("Doe", "C++", 3, 23);

d1.Company ();
d2.Company ();

Analyst A1 = new Analyst ("Doe", "C++", 3, 23);
A1.Company ();
  }
}

出现以下错误:

Main.java:58: error: cannot find symbol
   Analyst A1 = new Analyst("Doe","C++",3,23);
   ^
    symbol:   class Analyst
   location: class Main
   Main.java:58: error: cannot find symbol
   Analyst A1 = new Analyst("Doe","C++",3,23);
                 ^
  symbol:   class Analyst
  location: class Main
  2 errors
public class Developer
{
String Name;
String Language;
int Years;
int Age;


void Company ()
{
  System.out.println (Name + " Codes in " + Language + " & has " + Years +
          " Years of experience" + ", He is " + Age + " Old");
}

public Developer ()
{
  System.out.println ("Hello");
}

public Developer (String Name, String Language, int Years, int Age)
{
  this ();
  this.Name = Name;
  this.Language = Language;
  this.Years = Years;
  this.Age = Age;
}
 }





 public class Analyst extends Developer {
      
    public Analyst (String Name, String Language, int Years, int Age){
        super (Name, Language, Years, Age);
      }
    
    public static void main (String[]args){
    
    Developer d1 = new Developer ();
    d1.Name = "John";
    d1.Language = "Java";
    d1.Years = 2;
    d1.Age = 22;
    
    Developer d2 = new Developer ("Doe", "C++", 3, 23);
    
    d1.Company ();
    d2.Company ();
    
    Analyst A1 = new Analyst ("Doe", "C++", 3, 23);
    A1.Company ();
      }

    }

您不能将static关键字与 class 一起使用,除非它是内部static内部 class 是嵌套的 class,它是外部static的成员 static

public class Outer {
   static class InnerStaticClass {
      public void example() {
         System.out.println("This is static nested class");
      }
   }
   public static void main(String args[]) {
      Outer.InnerStaticClass nestedClass = new Outer.InnerStaticClass();
      nestedClass.example();
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM