前几天和一大学同学聊天,被问到一个有意思的问题。
public class A {
public A() {
p();
}
protected void p() {
System.out.println("A");
}
}
class B extends A {
@Override
protected void p() {
System.out.println("B");
}
public static void main(String[] args) {
new B();
}
}
问我输出的是什么,我想当然的答A,结果错了。应该是B。
又做了个小实验,将class A改成抽象类、p()改成抽象方法,是同样的调用顺序。
abstract public class A {
public A() {
p();
}
protected abstract void p();
}
class B extends A {
@Override
protected void p() {
System.out.println("B");
}
public static void main(String[] args) {
new B();
}
}
由此得出,java的继承中调用构造方法时,使用的是就近原则。
分享到:
相关推荐
了解和熟练使用构造方法是Java面向对象编程的基础,下面将详细阐述Java构造方法的相关知识点。 一、构造方法的作用 构造方法的主要任务是在创建对象时设置对象的初始状态,为对象成员变量赋值。当一个类被实例化时...
79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java构造方法.zip79.java...
关于构造方法的PPT 关于构造方法的PPT 关于构造方法的PPT 关于构造方法的PPT 关于构造方法的PPT 关于构造方法的PPT 关于构造方法的PPT 关于构造方法的PPT 关于构造方法的PPT 关于构造方法的PPT 关于构造方法的PPT ...
Java构造方法是面向对象编程中的一个关键概念,用于初始化新创建的对象。在Java类中,构造方法是一个特殊的方法,它的名字必须与类名完全相同,没有返回类型,甚至不包括void关键字。当我们创建一个类的新实例时,...
java构造方法的学习对java学习者尤为重要
### Java构造方法详解 #### 一、构造方法基础概念 构造方法是Java中一种特殊的方法,主要用于初始化新创建的对象。每个类至少有一个构造方法。如果程序员没有显式地定义构造方法,Java编译器会自动为类添加一个无...
Java 构造方法是编程语言中的一个重要概念,特别是在面向对象编程中,如Java。它们是类的特殊方法,用于初始化新创建的对象。当一个对象被创建时,构造方法会被自动调用,为对象的成员变量赋值,进行必要的设置,...
关于调用Java构造方法,你可以这样做: ```c++ jclass javaClass = env->FindClass("com/example/YourJavaClass"); jmethodID constructor = env->GetMethodID(javaClass, "<init>", "()V"); jobject javaObject = ...
本文件主要探讨了Java中带有不同构造方法的程序如何影响内存分析,这包括无参构造方法、带参数的构造方法以及它们在内存分配中的应用。 首先,让我们了解一下构造方法。构造方法是一种特殊的方法,它的名字与类名...
下面是关于Java构造方法的详细知识点: 1. 构造方法的语法规则:构造方法必须满足以下语法规则: * 方法名必须与类名相同。 * 不要声明返回类型。 * 不能被static、final、synchronized、abstract和native修饰。...
Java构造方法 Java构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。对象的创建就是通过构造方法来完成,其功能主要是完成对象的初始化。当类实例化一个对象时会自动调用构造方法。构造方法和...
Java构造方法解析 在Java编程语言中,构造方法是一个特殊的方法,它的主要任务是初始化一个新创建的对象。构造方法与类名相同,并且没有返回类型,即使是void也不行。了解和熟练使用构造方法是Java程序员的基本技能...
83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中String构造方法.zip83.java中...
85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中String构造方法.zip85.java中...
下面详细解析Java构造方法的特性和使用方法。 构造方法的特性: 1. 方法名与类名相同:构造方法的名字必须与类名完全相同,这是Java语法规定的一部分,便于编译器识别并自动调用构造方法。 2. 构造方法无返回类型:...
在Java编程语言中,子类继承父类时,构造方法起着至关重要的作用。它们用于初始化对象,并在创建新实例时执行特定的设置步骤。理解如何在子类中使用构造方法是掌握面向对象编程的关键部分。本文将深入探讨Java子类...
在Java编程语言中,构造方法是用于初始化新创建对象的特殊方法。它们的名字与类名相同,不返回任何类型,并且通常与new关键字一起使用。构造方法的重载(Overloading)是面向对象编程的一个重要特性,允许我们在同一...
Java 枚举类的属性、方法和构造方法应用实战 Java 枚举类是一种特殊的类,它拥有自己的属性、方法和构造方法。本文将详细介绍 Java 枚举类的属性、方法和构造方法应用实战,结合实例形式分析了 Java 枚举类的定义、...