Java面试题之子类是否继承父类属性?
题目如下:
public class Super { private int i = 10; public void execute() { System.out.println(i); } public static void main(String[] args) { SubClassA subClass = new SubClassA(); Super superClass = subClass; System.out.println("subClassA value:"); subClass.execute(); System.out.println("super value:"); superClass.execute(); SubClassB subClassB = new SubClassB(); superClass = subClassB; System.out.println("subClassB value:"); subClassB.execute(); System.out.println("super value:"); superClass.execute(); } } class SubClassA extends Super { private int i = 20; } class SubClassB extends Super { private int i = 30; public void execute() { System.out.println(i); } }
问题:结果的输出是什么?
先不考虑结果我们先看下继承在Java里是个什么概念?
写道
Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类。
也就是说继承主要是为了功能次要是为了数据,那么我们分析上述答案
1.首先看实际执行的方法是哪个类的?
2.那么执行的方法所在类也就是this访问的变量自然就是哪个类的变量
答案:
subClassA value: 10 super value: 10 subClassB value: 30 super value: 30 super value:
如果修改private为public是否答案等同?必须等同
相关推荐
为了在Java面试中脱颖而出,了解和掌握常见的面试题及答案至关重要。以下是一些关键知识点的详细解析: 1. **super()与 this()的区别** `super()`用于调用父类的构造器,确保子类实例化时父类的初始化;`this()`则...
- **继承**:继承机制允许子类继承父类的所有属性和方法,并可以在子类中添加新方法或覆盖父类的方法来扩展或修改功能。 - **封装**:封装是一种将数据和方法包装在一起的技术,通过对外提供有限的接口来控制对...
- **继承**允许一个类(子类)继承另一个类(父类)的属性和方法,实现代码复用。 - **多态**是指同一种行为可以有不同的表现形式,即子类可以重写父类的方法,表现出不同的行为。 4. **异常处理:** Java 异常...
- **定义**:继承是一种使一个类可以继承另一个类的特性的方式,子类继承父类后,可以重写父类的方法以实现特定的功能,同时还可以添加新的属性和方法。 - **示例**: ```java public class Animal { public ...
1. Java 中的继承是一种实现代码重用的机制,子类可以继承父类的属性和方法。 2. Java 中的多态是指对象可以表现出多种形态的能力,例如方法的重写和重载。 Java 基础面试题涵盖了 Java 的基础知识、主要概念、对象...
根据给定的文件信息,我们可以总结出一系列与2010年华为Java面试相关的知识点,这些知识点涵盖了Java语言的基础概念、语法结构、类与对象、访问控制、异常处理、数据类型转换、编码标准以及面向对象编程的核心原则。...
继承是面向对象编程的三大特性之一,它是指子类继承父类的所有成员变量和成员方法,子类可以继承父类的所有成员变量和成员方法,并可以对其进行修改和扩展。 Java 继承的特征: 1. 传递性:子类可以继承父类的所有...
- 继承是一种类之间的关系,通过继承,子类可以继承父类的属性和方法,从而达到代码复用的目的。在Java中,类的继承是单继承的,即一个类只能有一个直接父类,但可以通过多层继承实现多重继承的效果。 - **继承的...
- **继承**:子类继承父类的属性和方法,允许代码复用并提供扩展能力。 - **封装**:将数据和方法封装在一个类中,控制外部访问,提高安全性。 - **多态性**:不同类的对象能响应相同的消息,允许更灵活的设计和...
【JAVA面试题】Java语言是IT领域广泛应用的编程语言,面试中经常涉及到其核心概念和技术。以下是基于给定内容的一些详细知识点: 1. **面向对象的特征**:面向对象编程的四大特征是抽象、继承、封装和多态。 - ...
- **继承**:子类继承父类的属性和方法。 - **重写**:子类重新定义父类的方法。 - **父类引用指向子类对象**:通过父类引用调用子类重写的方法,实现动态绑定。 理解并熟练掌握这些知识点对于Java开发者来说至...
【Java面试题全集2018博客文章整理】是由知名技术专家骆昊在CSDN上发表的一系列Java面试题的集成,旨在为学习者和面试者提供高质量的参考资料。该系列文章针对网络上流传的《Java面试题大全》中存在的问题进行了修订...
继承可以继承父类的方法实现,而接口只能继承方法定义,需要子类实现所有方法。 5. HashMap与Hashtable的区别 HashMap和Hashtable都是Map接口的实现,用于存储键值对。主要的区别在于线程安全性和null值处理。 - ...
继承是OOP的另一个重要特性,允许子类继承父类的属性和方法,并可以扩展或覆盖它们,实现代码的复用和扩展。多态则是基于对象的类型,使得同一方法根据对象的实际类型执行不同的逻辑。在Java中,通过方法重写和父类...
### Java程序员面试题详解 #### 一、Java基础知识 1. **作用域public, private, protected, 以及不写时的区别** - **public**: 可以被任何类访问。 - **protected**: 可以被同一包内及不同包内的子类访问。 - ...
Java 面试题集No.1 - 华为面试题主要涵盖了面向对象的四大特征、基本数据类型与封装类的区别、以及字符串相关的知识点。以下是这些主题的详细解释: 1. **面向对象的特征** - **抽象**:抽象是将复杂的现实问题...
这个面试全集的创建者通过对网络上流传的《Java面试题大全》进行修订,删除了无价值和错误的题目,更新为Java 7的标准,并增加了现代Java开发中重要的知识点,如数据结构和算法、大型网站技术架构、设计模式、UML...
根据给定的文件内容,我们可以总结出一系列与Java面试相关的知识点。下面将详细解析每一道题目涉及的关键概念。 ### 第一部分:基础知识 #### 1. final, finally, finalize的区别 - **final**: 用于声明变量、方法...
以上是Java基础面试题的一些关键知识点,面试中通常需要结合具体题目,深入分析并给出解决方案。掌握这些知识点不仅能帮助应聘者顺利通过面试,也能提升他们的编程技能和问题解决能力。在回答面试问题时,不仅要展示...