수퍼 클래스의 개인 인스턴스 변수에 액세스하는 방법을 알아 내는데 어려움이 있습니다. 이름과 유형이 같은지 비교하는 equals 메소드를 Dog 클래스에 작성하고 있지만 이름은 Pet 내부의 개인 인스턴스 변수 (Dog가 상속 함)입니다. 내 애완 동물 클래스의 동일한 방법을 사용하여 유지 어떤 이유로상속 및 개인 인스턴스 변수
Dog d1 = new Dog("Harry", "Puggle");
Dog d2 = new Dog("Harry", "Pug");
System.out.println(d1.equals(d2));
:
public class Pet {
private String name;
public Pet(){
name = "";
}
public Pet(String name){
this.name = name;
}
public boolean equals(Pet other){
return this.name.equals(other.name);
}
}
내 개 클래스 : 내 메인 클래스에서
public class Dog extends Pet {
private String breed;
public Dog(String name, String breed) {
super(name);
this.breed = breed;
}
public Dog(){
breed = "";
}
@Override
public boolean equals(Object obj){
if(obj == null){
return false;
}
if(obj.getClass() != this.getClass()){
return false;
}else{
Pet p = (Pet)obj;
Pet q = (Pet)this;
Dog temp = (Dog)obj;
boolean name = q.equals(p);
boolean bred = breed.equals(temp.breed);
return name && bred;
}
}
}
여기
내 코드입니다 .감사합니다.
'Dog' 클래스의'equals'을 전혀 사용하지 않는다는 것을 의미합니까? 그렇지 않다면 코드에서 분명합니다. – nawfal