自己做错的一道题。
public class Base {
int i = 1;
public void method(){
System.out.println("abc");
}
public Base() {
method();
System.out.println(this);
}
}
public class Son extends Base {
static int i = -1;
public void method(){
System.out.println("def"+i);
}
//由于大家都是间接继承了Object类,那么每次在生成实例的时候 ,其实都是在生成自己的一个实例,而不是Object的
public Son() {
super();//指定子类利用父类的无参构造函数,也是默认的
System.out.println(this);
}
public static void main(String[] args) {
//上行,拥有父类的所有属性
Base instanse = new Son();
System.out.println(instanse.i);
instanse.method();
//求打印结果
}
}
打印结果:
def-1
Son@6b97fd
Son@6b97fd
1
def-1
我判断错了 ,在上行后父类的方法被重写的话,在子类的实例中就当父类没有这个方法(隐藏),在整个过程中,用到的method方法都是子类的。
还有个理解错误的地方就是instanse.i。
准备慢慢整理下以前做过的例子,基础还是有点差。
分享到:
相关推荐
在编程领域,面向对象编程(OOP)是设计和...这个案例有助于提升对Flutter开发的理解,同时也能加深对面向对象编程原则的认识。在实践中,这样的设计模式能帮助我们编写出更灵活、可维护的代码,适应不断变化的需求。
总的来说,这个实验旨在通过实践加深对面向对象编程中继承和多态的理解,同时引入接口和包的概念,以提升代码的组织和复用性。通过这个实验,你可以更好地掌握这些核心概念,并将其应用于实际的互联网项目中。
面向对象编程是Java的核心特性,本章主要讨论了三个关键概念:包、继承和多态。这都是理解和编写复杂Java程序的基础。...同样,通过设计汽车类的继承体系和分析动物类的行为,可以深化对继承和多态的认识。
面向对象编程是Java的核心特性之一,它通过封装、继承和多态等概念来构建复杂的软件系统。...通过实际编写代码并进行测试,加深了对动态绑定和多态性的认识,这对于开发复杂Java应用程序是至关重要的。
学习者将通过编写具有属性和行为的对象来理解类的构造,通过继承实现代码复用,并通过多态来实现更灵活的设计。 在“继承和多态”实验中,学生将深入研究类的继承关系,理解子类如何扩展父类的功能。多态性是Java中...
这个"快学Scala课后习题答案集合"资源将帮助学习者核对自己的解答,理解错误之处,并加深对Scala语言特性的认识。通过对比答案,学习者可以发现自己的不足,从而针对性地加强学习。无论是在基础概念还是在高级特性上...
教学过程中,教师可以通过对比面向过程和面向对象的程序示例,让学生理解面向对象的优越性,比如在处理学生成绩的例子中,面向对象可以更好地封装数据和操作,通过继承和多态简化代码。同时,引导学生从实际问题...
《深度探索C++对象模型》是一本专注于C++编程语言底层机制的专业书籍,它深入剖析了C++的对象模型,帮助读者理解C++是...通过阅读本书,你不仅可以提高C++编程的技能,还能对整个C++生态系统有一个全面而深入的认识。
2. **继承与多态**:继承允许一个类(子类)从另一个类(父类)继承属性和行为,简化了代码的重用。多态性则允许子类覆盖或扩展父类的行为,实现动态绑定,增强了程序的灵活性和可扩展性。 3. **模板**:C++的模板...
- **ch8**和**ch9**:可能涉及更高级的主题,如集合框架、IO流、多线程、网络编程或者异常处理。 掌握Java语言和面向对象编程不仅需要理解理论概念,还需要大量的实践编程。通过阅读和学习这些章节的内容,开发者...
面向对象编程是现代软件开发的核心思想之一,它的主要原则包括封装、继承、多态和抽象。在C#中,我们可以通过类(Class)来定义对象的结构和行为,使用对象实例来处理问题。封装是指将数据和操作这些数据的方法捆绑...
面向对象设计方法通过面向对象语言如C++、JAVA和C#等实现,这些语言支持封装、继承和多态的特性,使得它们在构建大型、复杂系统时具有更好的优势。 在实践中,两种方法并不互相排斥,而是可以相互补充。例如,C++...
在探讨多态性局限性和解决方案的过程中,本文还提到了多态性的核心理念——封装、继承和多态。封装可以隐藏对象的状态和行为的实现细节,并通过公共接口来访问对象;继承允许新类获得旧类的特性,并添加新的属性和...
2. **设计决策与关键标准**:书中强调了在进行设计时应考虑的重要标准,比如信息隐藏和职责下放(将更多的职责交给服务类),这些都有助于创建更模块化且易于扩展的代码结构。 3. **利用C++的强大功能**:本书深入...
这部分是入门阶段的必备知识,帮助初学者建立对Java的整体认识。 "Java实战习题集锦.pdf"提供了一系列实践题目,这些题目涵盖了上述章节的主要知识点,可以帮助学习者巩固理论知识,提升实际编程能力。通过解决这些...
2. **面向对象**:C#是一种完全的面向对象的语言,支持类、接口、继承、多态等概念。它的类声明与Java类似,使用关键字`class`,且拥有静态方法`Main()`作为程序入口。 3. **命名空间**:C#使用命名空间(namespace...
面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,C++作为其代表语言之一,深受广大程序员喜爱。...同时,对C++与C的关系有清晰的认识,有助于你在实际开发中选择合适的工具和方法。
首先,C++对C语言的“增强”体现在两个方面:一是对C语言的功能进行了扩充,增加了更多的数据类型、控制结构和库函数;二是引入了面向对象编程(OOP)机制,这包括类(class)、对象、封装、继承和多态等概念。这些...
同时,强调Python的灵活性和开源社区的贡献,鼓励学生去探索和尝试更多的库,以适应不断变化的技术需求。 通过这堂导入课,学生应能初步掌握Python在大数据分析中的应用,并对Python语言有更深的理解。课后,教师...