`
qhuwn
  • 浏览: 71848 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

对继承及多态的更多认识

 
阅读更多
自己做错的一道题。
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。

准备慢慢整理下以前做过的例子,基础还是有点差。
分享到:
评论

相关推荐

    da06抽象继承封装多态接口.zip

    在编程领域,面向对象编程(OOP)是设计和...这个案例有助于提升对Flutter开发的理解,同时也能加深对面向对象编程原则的认识。在实践中,这样的设计模式能帮助我们编写出更灵活、可维护的代码,适应不断变化的需求。

    实验5 继承与多态.doc

    总的来说,这个实验旨在通过实践加深对面向对象编程中继承和多态的理解,同时引入接口和包的概念,以提升代码的组织和复用性。通过这个实验,你可以更好地掌握这些核心概念,并将其应用于实际的互联网项目中。

    JAVA 面向对象程序设计第3章 继承与多态.pptx

    面向对象编程是Java的核心特性,本章主要讨论了三个关键概念:包、继承和多态。这都是理解和编写复杂Java程序的基础。...同样,通过设计汽车类的继承体系和分析动物类的行为,可以深化对继承和多态的认识。

    面向对象——多态实验报告.doc

    面向对象编程是Java的核心特性之一,它通过封装、继承和多态等概念来构建复杂的软件系统。...通过实际编写代码并进行测试,加深了对动态绑定和多态性的认识,这对于开发复杂Java应用程序是至关重要的。

    Java实验 上机指导

    学习者将通过编写具有属性和行为的对象来理解类的构造,通过继承实现代码复用,并通过多态来实现更灵活的设计。 在“继承和多态”实验中,学生将深入研究类的继承关系,理解子类如何扩展父类的功能。多态性是Java中...

    快学Scala课后习题答案

    这个"快学Scala课后习题答案集合"资源将帮助学习者核对自己的解答,理解错误之处,并加深对Scala语言特性的认识。通过对比答案,学习者可以发现自己的不足,从而针对性地加强学习。无论是在基础概念还是在高级特性上...

    5.1面向对象程序设计的基本思想.pdf

    教学过程中,教师可以通过对比面向过程和面向对象的程序示例,让学生理解面向对象的优越性,比如在处理学生成绩的例子中,面向对象可以更好地封装数据和操作,通过继承和多态简化代码。同时,引导学生从实际问题...

    深度探索C++对象模型

    《深度探索C++对象模型》是一本专注于C++编程语言底层机制的专业书籍,它深入剖析了C++的对象模型,帮助读者理解C++是...通过阅读本书,你不仅可以提高C++编程的技能,还能对整个C++生态系统有一个全面而深入的认识。

    几个经典的c++程序,初学者可以看看,加深对c++的认识

    2. **继承与多态**:继承允许一个类(子类)从另一个类(父类)继承属性和行为,简化了代码的重用。多态性则允许子类覆盖或扩展父类的行为,实现动态绑定,增强了程序的灵活性和可扩展性。 3. **模板**:C++的模板...

    java language and object

    - **ch8**和**ch9**:可能涉及更高级的主题,如集合框架、IO流、多线程、网络编程或者异常处理。 掌握Java语言和面向对象编程不仅需要理解理论概念,还需要大量的实践编程。通过阅读和学习这些章节的内容,开发者...

    C#游戏(提高对面向对象 的认识)

    面向对象编程是现代软件开发的核心思想之一,它的主要原则包括封装、继承、多态和抽象。在C#中,我们可以通过类(Class)来定义对象的结构和行为,使用对象实例来处理问题。封装是指将数据和操作这些数据的方法捆绑...

    面向对象设计方法与面向过程设计方法比较

    面向对象设计方法通过面向对象语言如C++、JAVA和C#等实现,这些语言支持封装、继承和多态的特性,使得它们在构建大型、复杂系统时具有更好的优势。 在实践中,两种方法并不互相排斥,而是可以相互补充。例如,C++...

    论文研究-Limitation of object-oriented language’s polymorphism.pdf

    在探讨多态性局限性和解决方案的过程中,本文还提到了多态性的核心理念——封装、继承和多态。封装可以隐藏对象的状态和行为的实现细节,并通过公共接口来访问对象;继承允许新类获得旧类的特性,并添加新的属性和...

    Core C++ A Software Engineering Approach

    2. **设计决策与关键标准**:书中强调了在进行设计时应考虑的重要标准,比如信息隐藏和职责下放(将更多的职责交给服务类),这些都有助于创建更模块化且易于扩展的代码结构。 3. **利用C++的强大功能**:本书深入...

    Java教材课件+练习题.zip

    这部分是入门阶段的必备知识,帮助初学者建立对Java的整体认识。 "Java实战习题集锦.pdf"提供了一系列实践题目,这些题目涵盖了上述章节的主要知识点,可以帮助学习者巩固理论知识,提升实际编程能力。通过解决这些...

    c#入门的大体认识,有助于你在学习他之前必须的对他的了解!

    2. **面向对象**:C#是一种完全的面向对象的语言,支持类、接口、继承、多态等概念。它的类声明与Java类似,使用关键字`class`,且拥有静态方法`Main()`作为程序入口。 3. **命名空间**:C#使用命名空间(namespace...

    面向对象C++基础课件~~

    面向对象编程(Object-Oriented Programming,简称OOP)是一种重要的编程范式,C++作为其代表语言之一,深受广大程序员喜爱。...同时,对C++与C的关系有清晰的认识,有助于你在实际开发中选择合适的工具和方法。

    c++程序设计 第一章 c++初步认识

    首先,C++对C语言的“增强”体现在两个方面:一是对C语言的功能进行了扩充,增加了更多的数据类型、控制结构和库函数;二是引入了面向对象编程(OOP)机制,这包括类(class)、对象、封装、继承和多态等概念。这些...

    认识Python.pdf

    同时,强调Python的灵活性和开源社区的贡献,鼓励学生去探索和尝试更多的库,以适应不断变化的技术需求。 通过这堂导入课,学生应能初步掌握Python在大数据分析中的应用,并对Python语言有更深的理解。课后,教师...

Global site tag (gtag.js) - Google Analytics