私はChildClass、BaseClass、Studentの3つのクラスを持っています。 ChildClassはBaseClassを拡張します。私のChildClassは、dipslayName()という名前のメソッドを継承していますが、これは学生の名前を表示するはずですが、null値を与えています。私がChildClass内の生徒オブジェクトにコメントするとうまくいきます。継承されたメソッドは私にnull値を与えています
package com.techmahindra;
public class ChildClass extends BaseClass{
Student student = new Student();
public static void main(String[] args) {
ChildClass child = new ChildClass();
child.displayName();
}
/*public void displayName(){
setName();
System.out.println(student.getName());
}*/
public void setName(){
student.setName("Mahesh");
}
}
これは、他のクラスである:
package com.techmahindra;
import com.techmahindra.Student;
public class BaseClass {
Student student = new Student();
public void displayName(){
setName();
System.out.println(student.getName());
}
public void setName(){
student.setName("santhosh");
}
}
これは、他のクラスである:あなたのChildClass
内
package com.techmahindra;
public class Student {
private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
あなたは二つの異なる 'student'フィールド持っている - BaseClass''に1つ、 'ChildClass'で一つ。私はあなたがそれを望まないと強く疑う。 –
** 1 **あなたはこの関数をコメントアウトしました。どのように機能すると思いますか? ** 2 ** void関数なので、どこにnullを与えるのですか? ** 3 **この関数の両方の実装は同じです。どうしたの?! – Biffen
'BaseClass'と' ChildClass'にメンバー変数 'student'を定義しました。これらは2つの別々の変数であることに注意してください。 – Jesper