Java 教程

Java控制语句

面向对象编程

Java内置类

Java文件处理

Java错误和异常

Java多线程

Java同步

Java网络编程

Java集合

Java接口

Java数据结构

Java集合算法

高级Java

Java杂项

Java APIs和框架

Java类引用

Java有用资源

Java - extends关键字



Java 的extends关键字用于继承类的属性。以下是extends关键字的语法。

语法

class Super {
   .....
   .....
}
class Sub extends Super {
   .....
   .....
}

示例代码

以下是一个演示Java继承的示例。在这个例子中,您可以看到两个类,名为Calculation和My_Calculation。

使用extends关键字,My_Calculation继承了Calculation类的addition()和Subtraction()方法。

复制并粘贴以下程序到名为My_Calculation.java的文件中

示例

class Calculation {
   int z;
	
   public void addition(int x, int y) {
      z = x + y;
      System.out.println("The sum of the given numbers:"+z);
   }
	
   public void Subtraction(int x, int y) {
      z = x - y;
      System.out.println("The difference between the given numbers:"+z);
   }
}

public class My_Calculation extends Calculation {
   public void multiplication(int x, int y) {
      z = x * y;
      System.out.println("The product of the given numbers:"+z);
   }
	
   public static void main(String args[]) {
      int a = 20, b = 10;
      My_Calculation demo = new My_Calculation();
      demo.addition(a, b);
      demo.Subtraction(a, b);
      demo.multiplication(a, b);
   }
}

输出

编译并执行上述代码,如下所示。

javac My_Calculation.java
java My_Calculation

程序执行后,将产生以下结果:

The sum of the given numbers:30
The difference between the given numbers:10
The product of the given numbers:200

在给定的程序中,当创建My_Calculation类的对象时,超类的内容副本将被创建在其内。这就是为什么,使用子类的对象,您可以访问超类的成员。

Inheritance

超类引用变量可以持有子类对象,但是使用该变量只能访问超类的成员,因此为了访问两个类的成员,建议始终为子类创建引用变量。

如果您考虑上述程序,您可以如下所示实例化类。但是使用超类引用变量(本例中为cal)您无法调用属于子类My_Calculation的方法multiplication()

Calculation demo = new My_Calculation();
demo.addition(a, b);
demo.Subtraction(a, b);

以下示例展示了相同的概念。

示例

class Calculation {
   int z;
	
   public void addition(int x, int y) {
      z = x + y;
      System.out.println("The sum of the given numbers:"+z);
   }
	
   public void Subtraction(int x, int y) {
      z = x - y;
      System.out.println("The difference between the given numbers:"+z);
   }
}

public class My_Calculation extends Calculation {
   public void multiplication(int x, int y) {
      z = x * y;
      System.out.println("The product of the given numbers:"+z);
   }
	
   public static void main(String args[]) {
      int a = 20, b = 10;
      Calculation demo = new My_Calculation();
      demo.addition(a, b);
      demo.Subtraction(a, b);
   }
}

输出

编译并执行上述代码,如下所示。

javac My_Calculation.java
java My_Calculation

程序执行后,将产生以下结果:

The sum of the given numbers:30
The difference between the given numbers:10

注意 - 子类继承其超类的所有成员(字段、方法和嵌套类)。构造器不是成员,因此不会被子类继承,但是可以从子类调用超类的构造器。

java_basic_syntax.htm
广告