我知道构造函数不是继承的,
error Name has private access in MyClass
error imcompatible types unexpected return value
我应该如何设置扩展类
import java.util.*;
import java.lang.String;
import static java.lang.System.out;
public class MainClass {
public static void main(String[] args ){
YourClass xclass = new YourClass ("Sam");
System.out.println(xclass.getName());
}
}
class MyClass {
private String name;
public MyClass(String fn){
name = fn; }
public String getName (){
return name;}
}
class YourClass extends MyClass{
public YourClass(String fn ){
return name = fn; }
}
答案 0 :(得分:1)
您需要进行以下修改:
您应该将name
中值MyClass
的访问修饰符从private
更改为protected
。这是因为private
成员只能在同一个班级中进行访问,因此YourClass
无法访问name
中的变量MyClass
。
您应该在super(fn);
的构造函数中添加YourClass
。这是因为如果你没有显式调用超类的构造函数,编译器将默认插入代码段super()
,它会调用无参构造函数,但是这个构造函数在你的代码中不存在,所以它不会编译。
您应该从return name = fn;
的构造函数中删除YourClass
。这是因为构造函数不应返回任何内容。
所以你应该有以下内容:
class MyClass {
protected String name;
public MyClass(String fn) {
name = fn;
}
public String getName() {
return name;
}
}
class YourClass extends MyClass {
public YourClass(String fn) {
super(fn);
}
}