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