Java中的面向?qū)ο缶幊讨?,繼承是一種非常重要的概念,它可以有效地提高代碼的復(fù)用性、降低程序的維護(hù)成本。而父類和子類的關(guān)系則是繼承的核心概念,下面我們來(lái)看看與Java父類和子類有關(guān)的面試題。
1. 父類和子類的定義和關(guān)系
class Father { // 父類的屬性和方法 } class Son extends Father { // 子類的屬性和方法 }
父類和子類之間的關(guān)系是父類是子類的直接或間接基類或超類,子類是父類的直接或間接派生類。
2. 調(diào)用父類的構(gòu)造方法
class Father { int age; public Father(int age) { this.age = age; } } class Son extends Father { int grade; public Son(int age, int grade) { super(age); this.grade = grade; } }
在子類的構(gòu)造方法中使用super關(guān)鍵字來(lái)調(diào)用父類的構(gòu)造方法,可以使用super調(diào)用父類的有參構(gòu)造方法或者無(wú)參構(gòu)造方法。
3. 調(diào)用父類的方法
class Father { public void sayHello() { System.out.println("Hello, I am father."); } } class Son extends Father { public void sayHello() { super.sayHello(); System.out.println("Hello, I am son."); } }
在子類中可以使用super關(guān)鍵字來(lái)調(diào)用父類的方法,如果想要在子類方法中調(diào)用父類的同名方法,可以使用super關(guān)鍵字來(lái)實(shí)現(xiàn)。
4. 多態(tài)性
class Father { public void sayHello() { System.out.println("Hello, I am father."); } } class Son extends Father { public void sayHello() { System.out.println("Hello, I am son."); } } class Polymorphism { public static void main(String[] args) { Father father = new Father(); Father son = new Son(); father.sayHello(); son.sayHello(); } }
在Java中,多態(tài)性是指同一操作作用于不同的對(duì)象上,可以有不同的解釋和不同的實(shí)現(xiàn)。在以上代碼中,father和son都是Father類型,但是son實(shí)際上是Son類型的對(duì)象,因此在調(diào)用sayHello方法時(shí),會(huì)調(diào)用子類的方法實(shí)現(xiàn)。