Java中的继承是指子类(派生类)从父类(基类)中获得属性和方法。在Java中,一个类可以继承另一个类的所有非私有成员变量和成员方法。子类可以使用继承的属性和方法,也可以拥有自己独有的属性和方法。
继承的语法格式如下:
class SubClass extends SuperClass {
// 状态和行为
}
其中,SubClass
是子类,SuperClass
是父类。子类使用关键字extends
来继承父类中的属性和方法。
下面是一个简单的示例:
class Animal {
public void move() {
System.out.println("动物可以移动");
}
}
class Dog extends Animal {
public void move() {
super.move(); // 调用父类中的move方法
System.out.println("狗可以跑和走");
}
}
public class TestDog {
public static void main(String args[]) {
Animal a = new Animal(); // Animal对象
Dog b = new Dog(); // Dog对象
a.move(); // 执行 Animal 类的方法
b.move(); // 执行 Dog 类的方法
}
}
输出结果为:
动物可以移动
动物可以移动
狗可以跑和走
这个示例中定义了一个Animal
类和一个Dog
类,Dog
类继承了Animal
类的move
方法。Dog
类中的move
方法使用了关键字super
来调用父类中的move
方法,并且添加了狗的特有方法“跑和走”,在main
函数中分别使用了Animal
类和Dog
类的对象来执行move
方法。
另一个示例:
class Shape {
private int x;
private int y;
public void setX(int x) {
this.x = x;
}
public void setY(int y) {
this.y = y;
}
public int getX() {
return x;
}
public int getY() {
return y;
}
}
class Rectangle extends Shape {
private int width;
private int height;
public int area() {
return width * height;
}
public void setWidth(int width) {
this.width = width;
}
public void setHeight(int height) {
this.height = height;
}
public int getWidth() {
return width;
}
public int getHeight() {
return height;
}
}
public class TestRectangle {
public static void main(String args[]) {
Rectangle rect = new Rectangle();
rect.setX(10);
rect.setY(20);
rect.setWidth(30);
rect.setHeight(40);
System.out.println("矩形的面积为:" + rect.area());
}
}
输出结果为:
矩形的面积为:1200
这个示例中定义了一个Shape
类表示二维图形的基础属性,包括x
和y
坐标。Rectangle
类继承了Shape
类,并添加了矩形特有的宽和高属性和计算面积方法。在main
函数中创建了一个Rectangle
对象,并设置了坐标和宽高属性,并计算了矩形的面积。
通过这两个示例,我们可以看到在Java中使用继承可以方便地重用父类中的方法和属性,也可以通过子类来扩展和添加新的属性和方法,极大地提高了代码的可重用性和扩展性。