Проверьте два объекта разных классов

У меня есть три класса:

  1. Человек
  2. Отец
  3. Ребенок.

Родительский класс расширяет Отец и Отец расширяет Человека.

Я создал несколько экземпляров каждого класса и сохранил их в ArrayList.

Теперь я хочу написать метод, чтобы проверить, имеет ли объект father1 один и тот же адрес поля (например: "21 str Goodwin") в качестве поля адреса объекта child1 (экземпляры класса "Отец и ребенок") и передать этот метод моему ArrayList и распечатать если какие-либо результаты были найдены.

Как я могу это сделать?

Позвольте мне добавить мой код здесь для большей ясности:

Человеческий класс:

public class Om {
 String nume;
 String prenume;
 String cnp;

Om(String nume,String prenume,String cnp){
this.nume=nume;
this.prenume=prenume;
this.cnp=cnp;

}
@Override
public String toString() {
 return "Numele omului: " + this.nume +"\n"+ "Prenumele omului: " + this.prenume +"\n"+ "Cnp-ul omului: " + this.cnp + "\n" ;
}


}

Класс отца:

public class Parinte extends Om{
String domiciliu;
Parinte(String nume, String prenume, String cnp, String domiciliu){
 super(nume,prenume,cnp);
 this.domiciliu=domiciliu;
}

@Override
public String toString() {
 return "Numele parintelui: " + nume +"\n"+
 "Prenumele parintelui :" + prenume +"\n"+ 
 "Cnp-ul parintelui: " + cnp +"\n"+ 
 "Domiciliul parintelui: "+domiciliu+"\n"; 
}

}

Класс ребенка:

public class Copil extends Parinte {
int varsta;
Copil(String nume, String prenume, String cnp, String domiciliu, int varsta){
 super(nume,prenume,cnp,domiciliu);
 this.varsta=varsta;
}
@Override
public String toString() {
 return "Numele copilului: " + nume +"\n"+
 "Prenumele copilului :" + prenume +"\n"+ 
 "Cnp-ul copilului: " + cnp +"\n"+ 
 "Domiciliul compiluiui: "+ domiciliu +"\n"+
 "Varsta copilului: "+varsta+"\n";
}


}

Мой метод сортировки списка по алфавиту:

import java.util.*;

public class comparareNume implements Comparator<om>{
public int compare(Om om1, Om om2){
 return om1.nume.compareTo(om2.nume);}


}
</om>

И мой основной класс:

import java.util.*;
public class main {

public static void main(String[] args) {
 Om om1=new Om("Dubolari", "Dragos", "2006004034120");
 Om om2=new Om("Andronachi","Andrei", "12591295967123");
 Parinte p1=new Parinte("Vreascu","Andy","5845289564684","Al. Cel Bun 13");
 Copil c1 = new Copil("Mamaliga","George","5942356874156","Al. Cel Bun 13", 15);
 List<om> colectie = new ArrayList<om>();
 colectie.add(om1);
 colectie.add(p1);
 colectie.add(c1);
 colectie.add(om2);

 comparareNume comparNume = new comparareNume();
 Collections.sort(colectie, comparNume);
 System.out.println(colectie); 
 }


}
</om></om>
2 ответа

FatherObj.getAddress().equals(ChildObj.getAddress())

Пример для getAddress() и address поля внутри Child and Father

private String address = "21 str Goodwin"

public String getAddress() {
 return address;
}


Поместите такую функцию в Human, которая устанавливается через конструктор (его также можно установить с помощью сеттера, но при этом в конструкторе допускается неизменность).

public Human(String address) {
 addr = address;
}
public String getAddress() {
 return addr;
}

Эта функция доступна для всех подклассов.

Затем вы можете получить к нему доступ, как было предложено @NappaTheSaiyan

licensed under cc by-sa 3.0 with attribution.