Обзор-
Это концептуальное сомнение.
Я хотел реализовать структуру данных для отслеживания зарегистрированных мобильных телефонов.
Итак, я создал три класса -
1) Класс узла, который имеет две переменные -
class Node{
public Object data;
public Node next;
public Node (Object datax) {
this.data = datax;
}
}
2) Класс мобильного телефона
class MobilePhone {
public int phoneID;
public MobilePhone(int number) {
this.phoneID= number;
}
public int number() {
return this.phoneID;
}}<br>
3) Класс Myset, который реализует LinkedList с использованием объектов Node.
Я только что показал метод вставки здесь для простоты.
// the following method inserts a MobilePhone object in front of the Myset LL
public void Insert(Object o) {
if(IsMember(o)) {
// print already a list
return;
}
Node temp = head;
head = new Node(o);
head.next = temp;
numberPhone++;
}
Тогда в другом классе я использую
MobilePhone m1MobilePhone = new MobilePhone(193);
set1Myset.Insert(m1MobilePhone);
System.out.println(set1Myset.head.data.number());
Я определил класс Node и Myset, используя только объекты класса Object для обобщения.
Но если я передам объект типа MobilePhone, я не смогу использовать методы, определенные в классе MobilePhone, поскольку компилятор продолжает отображать ошибку, такую как -
"Номер метода () не определен для Тип объекта ".
У меня вопрос: если я уже определил, что тип данных объекта, который я передаю, то почему я не могу использовать методы, определенные для этого типа данных?
Что я должен сделать, чтобы использовать их?