有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何通过继承访问字符串的值?

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();
      }

如果在主题()和教师()中放入字符串,如何显示它们的值?它没有任何编译器问题,但当我运行它时,它只显示

BSIT-1A

BSIT-1B

我的预期产出是

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

共 (2) 个答案

  1. # 1 楼答案

    您需要打印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);
            }
        }
    }
    
  2. # 2 楼答案

    你可以返回数组

     public String[] subject() {
      return {"Comprog11","WebDev","Digilog12","ComProg12"};
     }
    

    然后移除继承。主要方法不需要它。例如,将引导常量设置为公共的,或者将这些字符串传递给类构造函数,并使用getter方法添加一个私有字段

        Pilot a = new Pilot("BSIT-1A");
        Pilot b = new Pilot("BSIT-1B");
        System.out.println(a.getCode());
        System.out.println(b.getCode());
        Arrays.stream(a.subject()).forEach(System.out::println);