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


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

你可以返回数组

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

您需要打印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);
}
}
}

最新更新