Java繼承是一種面向?qū)ο蟮木幊谈拍睿挂粋€(gè)類(lèi)可以擁有另一個(gè)類(lèi)的屬性和方法。這種父子關(guān)系指的是子類(lèi)從父類(lèi)繼承了一部分屬性和方法。子類(lèi)可以覆蓋父類(lèi)的方法和屬性,但同時(shí)子類(lèi)也可以新增自身獨(dú)有的屬性和方法。繼承可以避免重復(fù)編寫(xiě)代碼,提高代碼的重用率,也使代碼更加易于維護(hù)。
Java繼承的規(guī)則
Java繼承的規(guī)則如下:
一個(gè)類(lèi)只能繼承一個(gè)直接的父類(lèi),也就是所謂的單繼承。
一個(gè)類(lèi)可以同時(shí)繼承多個(gè)接口,也就是所謂的多實(shí)現(xiàn)。
子類(lèi)不可以訪問(wèn)父類(lèi)中的private屬性和方法,但可以通過(guò)public或protected修飾的方法進(jìn)行訪問(wèn)。
子類(lèi)通過(guò)super關(guān)鍵字可以調(diào)用父類(lèi)中的非private屬性和方法。
子類(lèi)可以覆蓋父類(lèi)中的方法和屬性,屬性覆蓋通過(guò)定義同名屬性來(lái)實(shí)現(xiàn),方法覆蓋通過(guò)定義同名和同類(lèi)型的方法來(lái)實(shí)現(xiàn)。
父類(lèi)的構(gòu)造方法不能被子類(lèi)繼承,但可以通過(guò)super()調(diào)用父類(lèi)中的構(gòu)造方法。
Java繼承的示例
下面通過(guò)一個(gè)例子來(lái)展示Java繼承的使用。
class Shape { private String color; public Shape(String color) { this.color = color; } public String getColor() { return color; }}class Rectangle extends Shape { private double length; private double width; public Rectangle(String color, double length, double width) { super(color); this.length = length; this.width = width; } public double getArea() { return length * width; }}public class Test { public static void main(String[] args) { Rectangle rectangle = new Rectangle("blue", 3, 4); System.out.println(rectangle.getColor()); // output: blue System.out.println(rectangle.getArea()); // output: 12.0 }}
這個(gè)例子中,我們定義了一個(gè)Shape類(lèi)和一個(gè)Rectangle類(lèi),Rectangle類(lèi)繼承了Shape類(lèi)。Shape類(lèi)擁有一個(gè)color屬性和一個(gè)getColor方法,Rectangle類(lèi)新增了兩個(gè)屬性length和width和一個(gè)getArea方法,可以計(jì)算出矩形的面積。在main方法中,我們創(chuàng)建了一個(gè)Rectangle對(duì)象,并分別調(diào)用了getColor和getArea方法,輸出了其返回值。
以上就是關(guān)于Java繼承的規(guī)則的詳細(xì)解釋?zhuān)M麑?duì)大家有所幫助。