Java中的继承是什么?

  • Post category:Java

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类表示二维图形的基础属性,包括xy坐标。Rectangle类继承了Shape类,并添加了矩形特有的宽和高属性和计算面积方法。在main函数中创建了一个Rectangle对象,并设置了坐标和宽高属性,并计算了矩形的面积。

通过这两个示例,我们可以看到在Java中使用继承可以方便地重用父类中的方法和属性,也可以通过子类来扩展和添加新的属性和方法,极大地提高了代码的可重用性和扩展性。