📜  Java抽象类中的构造函数

📅  最后修改于: 2022-05-13 01:55:50.543000             🧑  作者: Mango

Java抽象类中的构造函数

抽象类是用抽象关键字声明的类。

抽象类的属性

  • 抽象可以有抽象和非抽象的方法。
  • 它必须用抽象关键字声明。
  • 它可以有一个构造函数,静态方法。
  • 它可以有一个final方法来防止抽象类的子类不改变方法的主体
  • 抽象方法不包含任何主体,或者简单地说,您可以说您不能在抽象类中定义抽象方法。我们可以在其抽象类的派生类中定义一个抽象方法。
  • 抽象类的对象无法实例化,这意味着您不能直接创建抽象类对象,但可以通过引用其子类来创建其对象。

构造函数构造函数在类本身中总是由其类名调用。构造函数用于初始化对象而不是构建对象。

抽象类也有构造函数。如果我们没有在抽象类中定义任何构造函数,那么 JVM(Java虚拟机)将为抽象类提供一个默认构造函数。如果您想知道如何定义用户定义的构造函数,例如带参数的构造函数或抽象类中的任何类型的构造函数,那么您应该遵循给定的过程。

应遵循的程序:

  • 如果您在抽象类中使用参数定义自己的构造函数,但忘记在其派生类构造函数中调用自己的构造函数,则 JVM 将默认调用构造函数。
  • 因此,如果您在抽象类中定义单参数或多参数构造函数,请确保使用 super 关键字调用驱动类构造函数中的构造函数。

方法:

在这个程序中,我们将使用以下方法将两个数字相乘

  • 首先,我们创建一个名为 Content 的抽象类,并定义一个用户定义一个带有一个参数的构造函数、一个名为“a”的变量和一个名为“multiply”的抽象方法
  • 然后我们创建一个必须从这个名为 'GFG' 的抽象类 'Content' 派生的类。在 GFG 类中,我们将定义一个构造函数,并在方法内部使用 super 关键字调用父类构造函数,并在其中定义其父类的抽象方法。
  • 在主类中,我们通过引用其派生类对象来创建抽象类“Content”的对象。然后我们通过它的对象调用抽象类的方法。
  • 在方法内部,我们将存储在不同变量名称中的值相乘,其中一个变量是抽象类的变量。我们可以通过其派生类对象访问抽象类的变量。
Java
// Concept of Constructors in Java Abstract Class
 
// An abstract class Named as content
abstract class Content {
    int a;
 
    // Constructor of Content
    public Content(int a) { this.a = a; }
 
    // Abstractact Method in Abstract class
    abstract int multiply(int val);
}
 
// It is the Child class of abstract class Content
class GFG extends Content {
 
    // constructor of Child class GFG
    GFG() { super(2); }
 
    // Define method the abstract method
    public int multiply(int val) { return this.a * val; }
}
 
// Main class
public class Main {
    // Main Method in java
    public static void main(String args[])
    {
 
        // create reference object of abstract
        // class using it child class
        Content c = new GFG();
 
        // Call abstract method of abstract class
        System.out.println(c.multiply(3));
    }
}



输出
6