Все знают, что наследство подкласса родительских классов - это наследование типа, включая атрибуты и методы! Если подкласс и родительский класс имеют одинаковую подпись, это называется перезапись! Если атрибуты подкласса и родительского класса одинаковы, родительский класс скрыт свои собственные атрибуты!
Но если я использую ссылки, созданные родительским классом и классом ребенка, чтобы указывать на объект, созданный дочерним классом, каков результат значения свойства или метода в объекте класса дочернего класса?
Посмотрите на код:
открытый класс FieldDemo {public static void main (string [] args) {студент t = новый студент ("jack"); Человек p = t; // Ссылка, созданная родительским классом, указывает на объект, созданный Subclass System.out.println (t.name+","+p.name); System.out.println (t.getName ()+","+p.getName ()); }} класс Person {string name; int возраст; public String getName () {return this.name; }} класс Студент Extens Person {String name; // Атрибут и имя атрибута родительского класса одинаковы, но он не будет таким же, как именем атрибута родительского класса во время разработки! ! public Student (String name) {this.name = name; super.name = "rose"; // Присвоение значения атрибутам в родительском классе} public String getName () {return this.name; }} Результатом возврата:
Джек, Роза
Джек, Джек
Причина в том, что в Java атрибуты связаны с типами, а методы связаны с объектами!
Статья очень проста, но она также имеет определенную практическую ценность. Я надеюсь, что это будет полезно для каждого обучения.