`

java 子类和父类中方法的引用

 
阅读更多
public class SuperA {
	public SuperA(){
		printX();
	}
	
	public void printX(){
		System.out.println("hello superA!");
	}
}

 

public class SuperB extends SuperA {
	public SuperB(){
		printX();
	}
	
	public void printY(){
		System.out.println("hello superB!");
	}
	
	@Override
	public void printX(){
		System.out.println("hello override BB!");
	}
}

 

public class SuperTest {

	public static void main(String[] args) {
		SuperB b = new SuperB();
	}

}

 

输出:为

hello override BB!

hello override BB!

 

原因是

new SuperB()

时,根据虚拟机的加载机制,会优先初始化其父类superA,执行superA的构造方法,但是,superB类中将pintfX方法重写,所以在superA中执行printX方法时,其方法已经被superB覆盖,所以输出hello override BB!

 

new superA()时,会输出hello superA!  与superB 没有关系。

 

 

 

分享到:
评论

相关推荐

    java子类重写父类的方法.doc

    在 Java 中,多态只看父类引用的方法,而不看子类对象的方法。这意味着,如果父类有一个方法 `void eat() { ... }`,子类可以定义一个同名的方法 `void eat() { ... }`,但这只是子类的方法,而不是重写父类的方法。...

    java 子类对象赋值给父类对象的使用

    1. **方法覆盖**:当子类继承父类并重写父类中的方法时,通过父类引用调用该方法,将执行子类中的版本。这是多态性的一种体现。 2. **构造器与初始化**:子类对象在创建时会先调用父类的构造器,确保父类的状态得到...

    子类引用父类构造方法

    java训练题目 编写程序实现子类对父类构造方法的引用?

    java中的继承(子类调用父类构造方法还不懂).doc

    在 Java 中,使用 `extends` 关键字可以实现继承关系,子类可以继承父类的属性和方法,并可以重写父类的方法。使用 `super` 关键字可以引用父类的成分,访问父类中定义的属性和方法。 在 Java 中,可以使用多态性来...

    将子类引用赋给父类对象时,java虚拟主机并没有将那些非继承成员丢弃

    即使父类引用没有直接指向子类的特有方法,但这些方法仍然存在于子类的元数据中,因此,如果通过子类引用调用,仍然可以访问到这些非继承成员。 这种机制在设计上保证了多态性的灵活性,同时又不会牺牲子类的特有...

    Java编程关于子类重写父类方法问题的理解

    Java编程关于子类重写父类方法问题的理解 Java编程中,子类重写父类方法是非常重要...子类重写父类方法是Java编程中非常重要的概念之一,我们需要了解子类重写父类方法的规则和机制,以便更好地理解和应用Java编程。

    JAVA 子类继承父类的范例 可直接运行

    在子类中,我们可以使用`super`关键字来引用父类中定义的成员变量和方法。 在给定的Java代码范例中,我们有一个基类`Student`,它代表学生的个人信息以及一个学期的课程注册信息。在`Student`类中有五个字段,包括...

    论JAVA继承机制中父类与子类的关系

    在Java中,子类可以通过以下方式重写父类的属性和方法: - **数据成员的重写**:当子类定义了一个与父类同名的数据成员时,子类成员将隐藏父类成员,即在子类中默认情况下无法直接访问父类成员。 - **方法的重写**...

    java多态性详解——父类引用子类对象

    本文将深入探讨Java中的多态性,特别是“父类引用子类对象”的概念,以及这一特性如何在实际编码中体现。 ### 多态性概述 多态性主要通过方法的重写(Overriding)、重载(Overloading)和动态绑定(Dynamic Binding)来...

    父类引用指向子类对象

    在Java编程语言中,"父类引用指向子类对象"是一种常见的多态性表现,它体现了面向对象设计的核心原则之一。这种现象发生时,父类类型的引用被用来创建和操作子类的对象,允许我们利用子类扩展的功能,同时保持代码的...

    Java中关于子类覆盖父类的抛出异常问题

    当调用者使用父类引用调用子类对象的方法时,根据父类的异常声明,调用者可以捕获到所有可能的异常类型,包括子类可能抛出的更具体异常。如果子类能抛出更宽泛的异常,那么调用者可能无法正确处理所有可能出现的异常...

    [Java] 对象类型转换和运算符 instanceof 学习笔记 [#子类转父类 #父类转子类 #对象和引用的区别]

    向上转型是自动的,安全的,因为它允许我们用子类对象的地方使用父类引用,这在多态性中十分常见。例如,`Animal a = new Cat();`这里的`a`可以被视为`Cat`对象,尽管它的类型是`Animal`。此时,`a`能调用`Animal`类...

    C++/JAVA/C#子类调用父类函数情况总结

    在Java中,子类调用父类的构造函数和函数如下: 1. **构造函数调用**: - **this(参数)**:在子类构造函数内部的第一行,通过`this(param)`调用本类的其他构造函数。 - **super(参数)**:同样在构造函数内部的第...

    ChildClass.java

    父类引用指向子类对象时,没法调用子类特有的方法; 父类引用指向子类对象: java中子类强转父类,实际上依然是子类; 该引用只能调用父类中定义的方法和变量; 如果子类中重写了父类中的一个方法,那么在...

    继承的小例子

    在Java编程语言中,继承是面向对象编程的一个核心特性,它允许一个类(子类)继承另一个类(父类)的属性和方法。这个概念在软件工程中扮演着至关重要的角色,因为它促进了代码的重用、扩展和组织。标题"继承的小...

    java 子类构造方法

    这是因为子类继承了父类的属性和方法,所以在初始化子类对象时,也需要确保父类的状态被正确设置。这是通过使用`super`关键字来实现的,其语法如下: ```java public SubClass() { super(); } ``` 或者,如果父类...

    Java中父类和子类之间的转换操作示例

    在 Java 中,父类和子类之间的转换操作可以分为两种:父类引用强转成为子类引用和父类不可以强转成为子类。 一、父类引用强转成为子类引用 在 Java 中,父类引用可以强转成为子类引用。这意味着,我们可以将父类...

    java多态性详解——父类引用子类对象.pdf

    Java 多态性详解 —— 父类引用子类对象 多态性是 Java 面向对象编程的三个特征之一,另外两个是封装和继承。多态性是指通过方法的重写、重载和动态连接来实现的。在 Java 中,多态性是为了解决单继承问题而引入的...

Global site tag (gtag.js) - Google Analytics