`
hellowuyao
  • 浏览: 9733 次
  • 性别: Icon_minigender_1
  • 来自: 北京市
最近访客 更多访客>>
社区版块
存档分类
最新评论

java基础特性-继承-代码分析

阅读更多
public class Father {
	int x = 10;
	 
    public Father() {
        add(20);
    }
 
    public void add(int y) {
        System.out.println("Father");
        x += y;
    }
}

public class Child extends Father {
	int x = 9;
	 
    public void add(int y) {
        System.out.println("Child");
        System.out.println("X:"+x);
        x += y;
        System.out.println(x + ":  :" + y);
    }
}


public class Test {
	public static void main(String[] args) {
        Father f = new Child();
        System.out.println(f.x);
 
    }
}

 

打印结果为:

Child
X:0
20:  :20
10

 

分析:

1. 父类对象的引用变量 f 引用了子类的实例对象,因此继承了父类的子类实例化时,执行了父类的构造方法,执行了add(20);

 

2. 执行add(20)方法,由于重写覆盖的原因,执行的是子类的add()方法。

 

3. 在Child类中的方法域中,子类的方法调用通过父类的变量引用,变量指针指向的是子类的内存空间,而此时子类方法中的x是通过父类的变量调用的,引用没有开辟内存,没有实例化,所以x=0。

 

4. 通过x = 0; x+=y; 打印出20:20。

 

5. 最后f.x 调用父类 x 变量,打印10.

分享到:
评论

相关推荐

    Java语言基础-类的继承

    文章目录Java语言基础-类的继承继承的特点继承的分类继承的写法重写规则:“三同一小一大”规则方法重写和方法重载的区别调用父类的构造方法 Java语言基础-类的继承 Java语言的三大特性之一 继承的特点 通过继承,...

    面向对象之继承-JAVA面试资料

    在《Think in java》中有这样一句话:复用代码是Java众多...在这句话中最引人注目的是“复用代码”,尽可能的复用代码使我们程序员一直在追求的,现在我来介绍一种复用代码的方式,也是java三大特性之一---继承。

    Java语法基础-面试专题及答案

    11.Java 面向对象编程三大特性: 封装 继承 多态 关于继承的3点 12.String StringBuffer 和 StringBuilder 的区别是什么 String 为什么是不可变的 可变性、线程安全性的研究 13.自动装箱与拆箱 14.在一个静态方法内...

    Java毕业设计-JAVA SMART系统-系统框架设计与开发(源代码+论文)(1).rar

    2. **面向对象编程**:系统采用纯面向对象的编程方式,利用Java语言的封装、继承和多态特性,提高了代码的可重用性和可维护性。 3. **数据库设计**:系统内置了多种数据库支持,包括MySQL、Oracle等主流数据库。...

    AES-Java-iOS-Android.zip

    面向对象:Java全面支持面向对象的特性,如封装、继承和多态,使得代码更易于维护和扩展。 安全:Java提供了丰富的安全特性,如禁止指针运算、自动内存管理和异常处理机制,以减少程序错误和恶意攻击的可能性。 ...

    失物招领平台源码java-cpp-to-java-source-converter:将C++转换为Java的翻译器。正在进行中的工作

    失物招领平台源码java C++ 到 Java 的翻译器 该项目旨在将 C++ 代码转换为高级 Java 源代码。 在不可能的情况下,TODO 应该出现在生成的源代码中。 地位 该项目大约进行了四分之三的初始发布。 以下项目将不会被初始...

    java核心技术-基础知识(第八版)

    基础知识(原书第8版)是《java核心技术》的最新版,《java核心技术》出版以来一直畅销不衰,深受读者青睐,每个新版本都尽可能快地跟上java开发工具箱发展的步伐,而且每一版都重新改写了的部分内容,以便适应java的...

    尚硅谷-实验-继承&super;.pdf

    本教程特点: 1.更适合零基础学员: ·自Java语言起源始,循序渐进...·Java语言基础阶段:12720行代码,Java语言高级阶段:11684行代码 ·课堂实战项目3套,课后实战项目2套 ·近百道企业面试真题精讲精练、极具实战性

    Java实现FP-growth算法.zip

    面向对象:Java全面支持面向对象的特性,如封装、继承和多态,使得代码更易于维护和扩展。 安全:Java提供了丰富的安全特性,如禁止指针运算、自动内存管理和异常处理机制,以减少程序错误和恶意攻击的可能性。 ...

    Java面试宝典-经典

    Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 7 2、Java有没有goto? 7 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套循环? 8 5、switch语句能否作用在byte...

    java面试题及答案(基础题122道,代码题19道).doc

    新类继承了原始类的特性,新类称为原始类的派生类(子类),而原始类称为新类的基类(父类)。派生类可以从它的基类那里继承方法和实例变量,并且类可以修改或增加新的方法使之更适合特殊的需要。

    java三大特性说明

    清楚说明了java三大特性: 抽象:处理各种问题的第一步,把具体的问题与解决问题的方法结合起来,这就是抽象的过程.  Java常见的访问控制修饰符:  Public :到处都可以访问,不受包和父子类关系的限制  默认: 只...

    JAVA基础课程讲义

    JAVA的特性和优势 14 JAVA应用程序的运行机制 15 JVM(JAVA VIRTUAL MACHINE) 16 Java运行时环境JRE(Java Runtime Environment) 17 JAVA语言应用范围 18 第一个JAVA程序 18 JAVA开发环境搭建 18 一个典型的JAVA程序的...

    java基础面试题目详解

    核心,包括了 Java 运行环境 JRE、Java 工具和 Java 基础类库。Java Runtime Environment(JRE)是运行 JAVA 程序所必须的环境的集合,包含 JVM 标准实 现及 Java 核心类库。JVM 是 Java Virtual Machine(Java ...

    重构-改善既有代码的设计

    第7章 在对象之间搬移特性 141 7.1 Move Method(搬移函数) 142 7.2 Move Field(搬移字段) 146 7.3 Extract Class(提炼类) 149 7.4 Inline Class(将类内联化) 154 7.5 Hide Delegate(隐藏“委托...

    贪吃蛇java课程设计--贪吃蛇程序设计.doc

    为了进一步巩固课堂上 " "所学到的知识,深刻把握Java语言的重要概念与其面向对象的特性,锻炼我们熟练" "的应用面向对象的思想和设计方法解决实际问题的能力。使我们通过进行课程设计" ",把所学课程与相关知识加以...

    java基础学习笔记 java整合技术 java工具类.rar

    简单性:相对于其他编程语言而言,java较为简单,例如:java不再支持多继承,C++是支持多继承的,多继承比较复杂,C++中有指针,java中屏蔽了指针的概念,避免了绝大部分的指针越界和内存泄露的问题,这里说明一下,...

    Java面向对象继承.pdf

    使用 implements 关键字可以变相的使java具有多继承的特性,使用范围为类继承接口的情况,可以同时继承多个接口(接口跟接口之间采用逗号分隔)。 super 与 this 关键字 super关键字:对父类成员的访问;this关键字...

    Java推箱子源代码

    此外,Java又不同于诸如C++语言提供的各种各样的方法,它只提供了基本的方法,这样就减少了编程的复杂性,例如去掉了头文件、指针变量、结构、运算符重载、多重继承等复杂特性。Java语言虽然简单,却非常高效,它...

    Java经典面试题(答案解析)

    继承提供了代码的重用行,也可以在不修改类的情况下给现存的类添加新特性。 3、 多态 多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作可以应用到其他类型的值上面。 4、 抽象 ...

Global site tag (gtag.js) - Google Analytics