如何将name
类中的字符串right
和名为true
的实例变量初始化为HighRights
?
因此,如果high
是HighRights
的实例,那么
high.getSecret();
应该返回the secret is 42
public class SecurityRights {
private boolean right;
private boolean canreadSecret;
String SECRET="the secret is 42";
public SecurityRights(boolean r) {
right =r;
if (r) canreadSecret=true; else canreadSecret=false;
}
boolean getRight(){
return right;
}
boolean canReadSecret(){
return canreadSecret;
}
String getSecret(){
if (canreadSecret) return SECRET; else return "access denied";
}
}
public class HighRights extends SecurityRights
{
private String name;
public HighRights(String n){
}
public String getName(){
return name;
}
public static void main(String[] a){
HighRights s= new HighRights("Lisa");
System.out.print(s.getName() +" "+s.getSecret());
}
}
答案 0 :(得分:0)
通过调用super()
来调用Parent的构造函数。
所以在你的情况下
super(booleanValue);
通常,这将放在子构造函数的第一行。
您还可以将隐私级别从private
更改为protected
,然后您就可以在所有子对象中访问它。
答案 1 :(得分:0)
您可以像调用getSecret()和intialize以及boolean和string一样创建方法。
OR
你可以使用超级方法。 Here是更多信息。您几乎可以为该类创建一个构造函数,但由于该类的实例从未真正创建过该实例的Child,因此您需要使用super命令来构造构造函数。
答案 2 :(得分:0)
继承的类将具有以下实现: -
class HighRights extends SecurityRights
{
private String name;
public HighRights(boolean r,String n){
super(r);
this.name = n;
}
public String getName(){
return name;
}
public static void main(String[] a){
HighRights s= new HighRights(false,"Lisa");
System.out.print(s.getName() +" "+s.getSecret());
}
}
在此实现中,使用super
关键字。当您需要从super
的构造函数调用superclass's
构造函数时,将使用subclass
关键字。由于您需要从right
的构造函数访问SecurityRights
HighRights
变量,因此您可以使用super
关键字来访问它。更多信息可以在oracle的manual找到。
另外,你在SecurityRights
的构造函数中给出了一个参数,但是你没有将它赋给任何变量。请避免这些错误。