是的,父类引用变量实际上可以持有子类对象,在对象的情况下,它是扩展的(将较低数据类型转换为较高数据类型)。但是,使用此引用,您只能访问父类的成员,如果您尝试访问子类成员,则会生成编译时错误。示例在以下 Java 示例中,我们有两个类,即 Person 和 Student。Person 类有两个实例变量 name 和 age,以及一个实例方法 displayPerson(),它显示姓名和年龄。Student 扩展了 Person 类,除了继承的... 阅读更多
Java 中的接口类似于类,但它仅包含抽象方法和字段,这些字段是 final 和 static 的。从 Java8 开始,在接口中引入了静态方法和默认方法。默认方法 - 与其他抽象方法不同,这些方法可以具有默认实现。如果接口中存在默认方法,则不必在已经实现此接口的类中覆盖(提供方法体)。简而言之,您可以使用实现类的对象访问接口的默认方法。示例interface MyInterface{ public static int num = 100; public default void ... 阅读更多
继承是两个类之间的关系,其中一个类继承另一个类的属性。此关系可以使用 extends 关键字定义,如下所示:public class A extends B{ }继承属性的类称为子类或子类,继承其属性的类称为父类或父类。在继承中,父类成员的副本在子类对象中创建。因此,使用子类对象,您可以访问这两个类的成员。示例class Super{ int a =100; int b = 200; public void ... 阅读更多
将数据和作用于数据的代码封装在一起的过程称为封装。这是一种保护机制,我们隐藏一个类的(一个对象的)数据,使其不被另一个类访问。由于变量保存类的属性,因此要封装一个类,您需要将所需的变量(您要隐藏的变量)声明为 private,并提供 public 方法来访问(读取/写入)它们。通过这样做,您只能在当前类中访问变量,它们将对其他类隐藏,并且只能通过提供的方法访问。因此,它是... 阅读更多
默认方法是在 Java8 中引入接口的。与其他抽象方法不同,这些方法可以具有默认实现。如果接口中存在默认方法,则不必在已经实现此接口的类中覆盖(提供方法体)。简而言之,您可以使用实现类的对象访问接口的默认方法。示例interface MyInterface{ public static int num = 100; public default void display() { System.out.println("display method of MyInterface"); } } public class InterfaceExample implements MyInterface{ public static void main(String ... 阅读更多
继承是两个类之间的关系,其中一个类继承另一个类的属性。此关系可以使用 extends 关键字定义,如下所示:public class A extends B{ }继承属性的类称为子类或子类,继承其属性的类称为父类或父类。在继承中,父类成员的副本在子类对象中创建。因此,使用子类对象,您可以访问这两个类的成员。多重继承有多种类型的继承可用,例如单一继承、多级继承、层次继承、多重... 阅读更多
Java 中的接口类似于类,但它仅包含抽象方法和字段,这些字段是 final 和 static 的。就像类一样,您可以使用 extends 关键字从另一个接口扩展一个接口,如下所示:interface ArithmeticCalculations{ public abstract int addition(int a, int b); public abstract int subtraction(int a, int b); } interface MathCalculations extends ArithmeticCalculations{ public abstract double squareRoot(int a); public abstract double powerOf(int a, int b); }但是,当您实现子类时,您需要为两个接口中的抽象方法提供方法体。示例在以下示例中,我们创建了两个接口... 阅读更多