Bevor wir die Java-Vererbung lernen, möchten wir uns an einige wichtige Punkte erinnern, die bei der objektorientierten Java-Vererbung besondere Aufmerksamkeit erfordern.
Objektorientiert vereinfacht komplexe Dinge und macht Code durch Kapselung wiederverwendbar und sicherer. Normalerweise müssen wir lernen, objektorientiert zu denken und Dinge oder Verhaltensweisen zu beschreiben.
Wenn Sie OOP verwenden möchten, müssen Sie sich seiner drei Hauptmerkmale bewusst sein:
1. Das Verhalten des Objekts: Welche Operationen können Sie auf das Objekt anwenden oder welche Methoden Sie verwenden kann auf das Objekt angewendet werden.
2. Der Zustand des Objekts: Wie das Objekt reagiert, wenn diese Operationen angewendet werden.
3. Objektidentität: So identifizieren Sie verschiedene Objekte mit demselben Verhalten und Status.
Alle Objektinstanzen derselben Klasse weisen Familienähnlichkeiten auf, da sie dasselbe Verhalten unterstützen. Das Verhalten eines Objekts wird durch aufrufbare Methoden definiert. Darüber hinaus verwaltet jedes Objekt Informationen, die seine aktuellen Eigenschaften beschreiben. Der Zustand eines Objekts kann sich im Laufe der Zeit ändern, die Änderung erfolgt jedoch nicht spontan. Änderungen am Objekt müssen durch den Aufruf von Methoden erreicht werden.
1. Beziehung zwischen Klassen
* Abhängigkeit („uses-a“)
* Aggregation („has-a“)
* Vererbung („is-a“)
Hier gebe ich eine kleine Kastanie aus unserem täglichen Einkauf, um kurz die Unterschiede zwischen diesen drei Beziehungen zu erklären. Wir haben eine Bestellung für einen bestimmten Schatz aufgegeben und einige Substantive werden im Bestellabwicklungssystem angezeigt:
Zum Beispiel: Artikel, Bestellung, Lieferadresse, Zahlung ( Zahlung), Konto (Konto) usw. Sie werden von Programmierern in verschiedene Klassen eingeteilt.
Abhängigkeit ist wie eine Methode einer Klasse, die ein Objekt einer anderen Klasse manipuliert. Wenn Sie eine Bestellung aufgeben, verwendet die Order-Klasse möglicherweise die Account-Klasse, da das Order-Objekt auf die Kreditinformationen des Account-Objekts zugreifen muss. (Sie können an Big Data oder Bankkredite denken)
Aggregation, Aggregation bedeutet, dass Objekte der Klasse A Objekte der Klasse B enthalten. Genauso wie ein Order-Objekt Item-Objekte enthalten muss.
Vererbung, genau wie die RushOrder-Klasse von der Order-Klasse geerbt wird. Im Folgenden stellen wir die relevanten Wissenspunkte der Vererbung im Detail vor.
2. Wichtige Erklärung zum Thema Vererbung
Erbe ist meiner Meinung nach eine positive und optimistische Einstellung, die es wagt, Veränderungen anzunehmen. spezifische Implementierungsmethoden. Dabei handelt es sich um den Prozess der Erstellung neuer Klassen aus vorhandenen Klassen. Anhand der Vererbung können Sie die Ableitung, Weiterentwicklung und Erweiterung von Produkten erkennen.
1. Vererbungssyntax
Das Schlüsselwort „extends“ gibt an, dass die neue Klasse von einer vorhandenen Klasse abgeleitet ist. Diese vorhandene Klasse wird als übergeordnete Klasse bezeichnet, und die abgeleitete Klasse wird als untergeordnete Klasse bezeichnet.
Zum Beispiel:
class A extends B { }//A类派生于B类
2.继承中的初始化顺序
简单来说,类的内部结构常见形态有四种:
1)属性(包括类属性和实例属性)
2)方法(包括类方法和实例方法)
3)构造器
4)初始化块(包括类的初始化块和实例的初始化块)
对于继承中的初始化顺序,可分为类的初始化和对象的初始化。
1)继承中类的初始化:(前提:父类中的属性和方法没有private修饰)
在JVM装在类的准备阶段,先为类的所有类属性和类初始化块分配内存空间。并在首次初始化阶段苏红为其进行初始化,类属性和类初始化块之间的定义时的顺序决定了其初始化的顺序。若存在父类,则首先初始化父类属性和类初始化块,一种上溯到Object类最先执行。
2)继承中对象初始化:(前提:父类中的属性和方法没有private修饰)
在new创建新对象时,首先对对象属性和初始化代码块分配内存,并执行默认的初始化。如果存在父类,则先搞好父类的。然后执行父类构造器中的初始化程序,接着才开始对子类的对象属性和初始化执行初始化。
3.继承中的隐藏
访问控制符的带来的访问权限,在上一篇的博客中我已经用表格的形式展示了。这里不再赘述。
当子类继承父类,子类可以继承父类中具有访问控制权限的属性和方法(不要被private修饰就可以了),对于用了private修饰的的父类所有的属性和方法,子类就继承不来了。
当子类需要改变继承过来的方法时,就需要用到重写方法了。一旦重写后,父类的方法对子类来说就表现为隐藏。你再想调用,就将调用重写后的子类当中的方法了。
当你重写了,还想调用父类,可以用两种方法:
1)将子类对象类型强制转换为父类类型,进行强调;
2)通过super.调用,注意它一定要被写到第一行。格式:super.method()
4.注意事项总结:
1)在子类构建对象时,先构建父类,再构建子类。
2)在方法调用的时候,永远永远永远是先在子类中找,子类中如果没有,再去父类中找。
代码示例:
1 public class JiC {2 public JiC() {3 System.out.println("我是父类");4 }5 6 public void method() {7 System.out.println("我是父类中的一个方法");8 }9 }
1 class B extends JiC { 2 public B() { 3 System.out.println("我是子类"); 4 } 5 6 public void method() { 7 System.out.println("我是子类中的一个方法"); 8 } 9 }10 11 public class JiC2 {12 public static void main(String[] aegs) {13 System.out.println("上面示例的打印结果是:");14 B b = new B();15 b.method();16 }17 }
Das obige ist der detaillierte Inhalt vonJava-Grundlagen – Vererbung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!