Прошу объяснить концепцию наследования + переопределить на основе следующего кода.Домашнее задание: объяснение наследования + переопределение в Java
public class Item {
private String itemType;
private String serialNumber;
public Item(String serialNumber, String itemType) {
this.setItemType(itemType);
this.setSerialNumber(serialNumber);
}
public String getItemType() {
return itemType;
}
public void setItemType(String itemType) {
this.itemType = itemType;
}
public String getSerialNumber() {
return serialNumber;
}
public void setSerialNumber(String serialNumber) {
this.serialNumber = serialNumber;
}
public String printItem() {
return serialNumber + "," + itemType;
}
}
public class Ipad extends Item {
private int ram;
public Ipad(String serialNumber, int ram) {
super(serialNumber,"iPad");
this.setRam(ram);
}
public int getRam() {
return ram;
}
public void setRam(int ram) {
this.ram = ram;
}
public String printItem() {
return super.getSerialNumber() + "," + super.getItemType()+ "," + getRam() + " GB";
}
}
У меня есть трудное время на самом деле объяснить, что происходит, так как я очень новичок в изучении Java :) Я не буду комментировать каждую линию на моей, пока я не получу больше практики, но до сих пор шаг за -ступенчатые комментарии, кажется, лучший способ для меня понять вещи.
1) Что происходит в кодере ниже: Я предполагаю, что это конструктор, но что делают две строки ниже?
public Item(String serialNumber, String itemType) {
this.setItemType(itemType);
this.setSerialNumber(serialNumber);
2) Что происходит внизу - есть два конструктора? Как я понимаю, конструктор нельзя переопределить. Я предполагаю, что супер вызывает конструктор из суперкласса, но затем добавляется новая переменная ram. Так это то, что называется цепью конструктора, если оно не переопределяется?
public Ipad(String serialNumber, int ram) {
super(serialNumber,"iPad");
this.setRam(ram);
}
3) Что переопределяется?
4) Как (помимо использования ключевого слова extends + super keywords) я объясню наследование с помощью этого примера?
Пожалуйста, постарайтесь ограничить 1 вопрос на ... вопрос. – Idos
Извините, я понимаю, что это выглядит подавляющим .. :) –
Я бы предложил вам попробовать исходный код, используя множество ответов, которые вы найдете здесь, или поиск по Google и некоторые набрав сами. Попытайтесь наследовать понятия и ограничения наследования по мере ввода: например, попробуйте использовать частный метод базового класса из производного класса. Он не будет компилироваться. Так что попробуйте все, и вы получите хорошую картину. Даже измените базовый класс, если вам нужно. – efekctive