

下記の様に2つのjavaファイルを作成し、同一packageの「robot_pet」に保存しました。  
この時、Pet.javaをコンパイルした後にRobotPet.javaをコンパイルした所、以下の様なエラーが発生しました。

[code]

    RobotPet.java:4: エラー: シンボルを見つけられません
    public class RobotPet extends Pet {
                                  ^
      シンボル: クラス Pet
    RobotPet.java:18: エラー: シンボルを見つけられません
            System.out.println("\nこんにちは! " + super.getMaster_Name() + "さん!" ) ;
                                             ^
      シンボル:   変数 super
      場所: クラス RobotPet
    RobotPet.java:19: エラー: シンボルを見つけられません
            System.out.println("\n僕はロボット犬の" + super.getPet_Name() + "です。") ;
                                              ^
      シンボル:   変数 super
      場所: クラス RobotPet
    エラー3個
    
[/code]

以下の様に、同一ディレクトリ(robot_pet)に「Pet.java」と「RobotPet.java」は置いてあります。

[![画像の説明をここに入力](https://i.stack.imgur.com/nlCws.png)](https://i.stack.imgur.com/nlCws.png)

このコンパイルエラーの発生理由と解決策が分かりません。  
ご教授頂けると幸いです。

### 試したこと

package宣言を無くしコンパイルをしたところ、コンパイルエラーは出ませんでした。

#### 状況

  * Windowsのコマンドプロンプトで実行。
  * VScodeで書きました。
  * VScodeは最新版です。

### ソースコード

Petクラス

[code]

    package robot_pet ; 
    
    // ペットの名前と、飼い主の名前を持ち、
    // かつ様々な処理を行うインスタンスを生成するクラス。
    public class Pet {  
    
        // [ インスタンス変数 ] 
        private String pet_Name ;     // ペットの名前
        private String master_Name ;  // 飼い主の名前 
    
        // [ 初期化コンストラクタ ]
        public Pet (String arg_pet_name , String arg_master_name){
    
            this.pet_Name = arg_pet_name ; 
            this.master_Name = arg_master_name ; 
    
        }
    
        // [ インスタンスメソッド群 ]
    
        // ゲッター群
        public String getPet_Name()    { return this.pet_Name ; }
        public String getMaster_Name() { return this.master_Name ; }
    
        //　保存されているインスタンス変数の情報を基に、挨拶をするメソッド
        public void printIntroduce(){
    
            System.out.println("\nこんにちは! " + this.master_Name + "さん!" ) ; 
            System.out.println("\n僕は" + this.pet_Name + "です。") ; 
    
        }
        
    }
    
[/code]

RobotPetクラス

[code]

    package robot_pet ;
    
    // Petクラスから派生したRobotPetクラス
    public class RobotPet extends Pet {
        
        // [ 初期化コンストラクタ ]
        public RobotPet(String pet_name , String master_name){
    
            super(pet_name , master_name) ; 
    
        }
    
        // [ インスタンスメソッド ]
    
        // 保存されているインスタンス変数の情報を基に、挨拶をするメソッド
        public void printIntroduce(){
    
            System.out.println("\nこんにちは! " + super.getMaster_Name() + "さん!" ) ; 
            System.out.println("\n僕はロボット犬の" + super.getPet_Name() + "です。") ; 
    
        }
    
        // 引数に応じて、異なる家事を行うメソッド
        public void  printWork(int option){
    
            switch (option){
                case 0 : System.out.println("掃除を行います。") ; 
                         break ; 
                case 1 : System.out.println("洗濯を行います。") ; 
                         break ; 
                case 2 : System.out.println("料理を行います。") ; 
                         break ; 
            }
    
        }
    
    }
    
[/code]


CC BY-SA 4.0
2023-07-09T08:27:40.207
95537
2023-07-09T11:41:02.227
2023-07-09T08:53:14.943
3060
58093
question
java windows
javaの継承を行った際に、同一パッケージ内に存在するにも関わらず、コンパイルエラーが発生します。


何とか解決できました。  
どうやらコンパイルの方法が間違っていたようです。


CC BY-SA 4.0
2023-07-09T11:41:02.227
95540
2023-07-09T11:41:02.227
58093
95537
answer