首页 > 解决方案 > 如何通过继承访问字符串的值?

问题描述

import java.util.*;

class Pilot
{
   protected String PILOT = "BSIT-1A";
   public static void Subject()
   {
      String[] subs = {"Comprog11","WebDev","Digilog12","ComProg12"};
   }
   public static void Teacher()
   {
     String[] teach = {"Ms.a","Ms.b","Ms.c","Ms.d"};
   }
}
class Pilot1 extends Pilot
{
   protected String PILOT1 = "BSIT-1B";
      public static void main(String[]args)
      { 
         Pilot1 obj = new Pilot1();

        System.out.println(obj.PILOT);
        System.out.println(obj.PILOT1);
        obj.Subject();
        obj.Teacher();
      }

如果我在其中放入一个字符串,如何显示Subject() 和 Teacher()的值?它没有任何编译器问题,但是当我运行它时只显示

BSIT-1A

BSIT-1B

我的预期输出是

BSIT-1A
BSIT-1B
Comprog11
Webdev
Digilog12
Comprog12
Ms.a
Ms.b
Ms.c
Ms.d

标签: javaoopinheritance

解决方案


您需要要么打印值,Subject()要么Teacher()让它们返回值。通过对象调用static方法也不是一个好习惯。它们应该由类调用,例如Pilot1.Subject().

class Pilot
{
    protected String PILOT = "BSIT-1A";
    public static void Subject()
    {
        String[] subs = {"Comprog11","WebDev","Digilog12","ComProg12"};
        for(String sub : subs){
            System.out.println(sub);
        }
    }
    public static void Teacher()
    {
        String[] teach = {"Ms.a","Ms.b","Ms.c","Ms.d"};
        for(String t : teach){
            System.out.println(t);
        }
    }
}

推荐阅读