关于Java继承
前阵子无意间看见一篇博文写到:子类继承父类,子类对象创建的同时会创建一个父类对象。
顿时感觉在JVM中的对象就像天上的星星一样多,作为一门这么火爆的语言按理说不会如此设计(事实也是不会这样设计)。
之前看的书都说:子类创建对象的时候会默认调用父类的构造方法,但是并没有创建一个对象,创建一个对象需要有一个new的过程。想过通过对象的Hashcode来比较,但是hashcode一样不一定代表两者是同一个对象,因此并不足以证明。
因此我在Stackoverflow上搜索“子类创建对象的同时创建一个父类对象”(借用翻译然后再搜索)
其中的一个回答感觉还是比较能说得通的:
class A {
public static A super_var;
public A() {
super_var = this;
System.out.println("Constrcutor of A invoked");
}
}
class B extends A {
public static A sub_var;
public B() {
sub_var = this;
System.out.println("Constructor of B invoked");
}
public void confirm() {
if (sub_var == A.super_var)
System.out.println("There is only one object is created");
else
System.out.println("There are more than one object created");
}
}
public class InheritTest {
public static void main(String Args[]) {
B x = new B();
x.confirm();
}
}
虚虚实实,需要学习的还有很多,欢迎指点拍砖砸人。
Have a nice day~
分享到:
相关推荐
Java 继承是面向对象编程中的一个重要概念,它允许一个类(子类)从另一个类(父类)中继承属性和方法,从而实现代码的复用和类的层次结构。这种方式使得子类能够继承父类的特性,同时可以添加自己的特性和功能,而...
在这个特定的程序中,我们看到了一个关于Java继承的实例,它演示了子类对象初始化时涉及的各个步骤,包括构造方法、初始化值、父类构造方法以及父类的初始化值。 首先,我们有一个名为`Parent`的父类,它有两个实例...
在这个名为"java继承部分课件"的资料中,我们可以期待学习到关于Java继承的基础知识、应用场景以及最佳实践。 在Java中,继承是通过使用`extends`关键字来实现的。例如,如果我们有一个名为`Animal`的父类,我们...
Java的继承性是其面向对象特性的重要组成部分,它允许一个类(子类或派生类)从另一个类(父类或基类)继承属性和方法,从而实现代码的复用和扩展。这种机制大大提高了软件开发的效率和灵活性,同时也支持了面向对象...
在这个"Java继承实例源代码"的压缩包中,包含的文件可能提供了关于Java继承和多态性的实际应用示例。 首先,我们来看“继承”这一概念。在Java中,通过使用关键字`extends`,一个类可以声明其为另一个类的子类。...
在“java继承代码”这个例子中,我们可以探讨一下关于Java继承的一些关键知识点。 1. **定义继承**:在Java中,我们使用`extends`关键字来实现类之间的继承。例如,如果我们有一个父类`Animal`,一个子类`Dog`可以...
这个例子展示了Java继承的核心概念,包括: 1. 使用`extends`关键字创建子类。 2. 访问和覆盖父类的方法。 3. 添加子类特有的方法。 4. 多态性的应用。 通过学习这个实例,开发者能够更好地理解和运用Java的继承...
这个资源"Java继承案例及源代码.rar"显然提供了关于如何在实际应用中使用Java继承的实例和源代码。下面,我们将深入探讨Java继承的概念、它的优点、如何实现以及一些关键点。 首先,继承的基本语法是子类通过`...
【Java面向对象之继承练习题】的解析与详解: 1. **类的继承**:在Java中,继承是面向对象编程的重要特性,允许一个类(子类)继承另一个类(父类)的属性和方法。例如,我们可以创建一个`Music`类作为其他音乐相关...
在这个"实例6继承"的压缩包文件中,我们可以期待找到一系列关于Java继承的示例代码和讲解,帮助我们深入理解这个主题。 继承的主要优点包括代码重用、多态性和增加可扩展性。当子类继承父类时,它可以自动获得父类...
以下是关于Java继承的一些关键知识点: 1. **继承的表示**:在Java中,子类继承父类使用关键字`extends`。例如,`class Dog extends Pet`表示Dog类是Pet类的子类。 2. **单一继承**:Java支持单一继承,即一个子类...
java继承学习教案.pptx
Java继承是面向对象编程的一个核心概念,它允许一个类(子类)继承另一个类(父类)的属性和方法,从而实现代码的复用和扩展。在这个经典的Java继承例子中,我们将深入理解这一机制。 首先,我们要明确的是,继承的...
标题"继承的小例子"暗示我们将讨论关于Java继承的一些基础实例。 首先,让我们深入理解Java继承的概念。当一个子类继承一个父类时,子类就自动获得了父类的所有非私有(public和protected)成员,包括字段和方法。...
Java继承作业.pdf 在本文中,我们将讨论Java继承的基本概念和实现方法,並以三个实例来演示继承的应用。 一、new A 和 A a=new A()的区别 在Java中,new关键字用于创建对象,而A a=new A()是将对象赋值给变量a。...
下面是一个简单的Java继承示例: ```java // 父类 public class Animal { protected String name; public Animal(String name) { this.name = name; } public void eat() { System.out.println(name + ...
Java继承机制在图形类中的应用 Java继承机制是一种重要的面向对象编程技术,通过继承机制,可以实现代码的重用和简化程序设计。在本例中,我们将使用Java继承机制编写一个抽象的图形类Shape,并编写两个子类矩形类...
在这个"JAVA复习题集(继承)"中,我们看到一系列关于Java继承相关的选择题和填空题,下面将详细解释这些知识点。 1. **类的继承关系**:Java语言的类间继承关系是单重的,即一个类只能有一个直接父类,选项B正确。这...
6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip6.java继承的概念.zip...
7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip7.java继承的语法.zip...