专栏首页Java小王子对方法的覆盖称为:动态分派举例
原创

对方法的覆盖称为:动态分派举例

class Base {
	public int i = 1;

	public Base() {
		g();
	}

	public void f() {
		System.out.println("Base f");
	}

	public void g() {
		System.out.println("Base g");
	}
}

public class Derived extends Base {
	public int i = 2;

	public void f() {
		System.out.println("Derived f");
	}

	public void g() {
		System.out.println("Derived g");
	}

	public static void main(String args[]) {
		Base b = new Derived();
		b.f();
		System.out.println(b.i);
	}
}

输出:

Derived g
Derived f
1

上面的例子说明了:只有类中的方法才有多态的概念,类中成员变量没有多态的概念。类中成员变量的值取决于所定义变量的类型,这是在编译期间确定的。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

关注作者,阅读全部精彩内容

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 详解:Java的重写方法与示例

    在父类中已经存在的子类中声明一个方法称为方法重写。进行了覆盖,以便子类可以将其自己的实现提供给父类已经提供的方法。在这种情况下,父类中的方法称为覆盖方法,子类中...

    陈哈哈
  • 【Java】继承、抽象、组合

    Object类包含的主要方法clone方法finalize方法getClass方法notify、notifyAll、wait方法

    用户7886150
  • 【笔记】《C++Primer》—— 第15章:面向对象程序设计

    这一章介绍了面向对象编程中最重要的对于类的全面介绍,全部内容都很常用,特别是15.2-4对于继承,抽象类,虚函数的介绍,是面试的常考点。这篇内容较多慢慢...

    ZifengHuang
  • c#多态性   静态多态性函数重载 动态多态性 虚方法:

    多态性意味着有多重形式。在面向对象编程范式中,多态性往往表现为"一个接口,多个功能"。

    酱紫安
  • c#中的多态学习总结

    c#的多台方法,大体上和c++的类似,但是有点区别的,我这里刚刚初学,因此把重点记录下。

    用户4645519
  • 【笔记】《C++Primer》—— 第三部分:类设计者的工具

    这篇是第三部分的总结,基本上就是回看了之前的4篇笔记并且重新翻翻书梳理了一下,内容基本都是从前面的章节复制来的,长度较长,难度可能也比较大。

    ZifengHuang
  • C#基础知识系列七(base、this、new、override、abstract、virtual、static)

    本文主要来讲解一下C#中,自己觉得掌握的不怎么样或者用的不多,不太熟悉的关键字,主要包括base、this、new、override、abstract、virt...

    aehyok
  • [C++]C++面试知识总结

    1.程序运行知识 1.1 内存布局和分配方式 C程序的内存布局如下: ? 静态存储区:存储全局变量和static变量,通常在程序编译期间已经分配好了。 BSS...

    昊楠Hacking
  • Java复习3-类的继承

    本次学习面向对象设计的另外一个基本概念:继承(inheritance)。这是Java程序设计中的一项核心技术。另外,还要学习反射(reflection)的概念。

    Ryan-Miao
  • 聊聊Spring的bean覆盖(存在同名name/id问题),介绍Spring名称生成策略接口BeanNameGenerator【享学Spring】

    众所周知,Spring容器可以简单粗暴的把它理解为一个大大的Map,存储着容器所管理的所有的单实例对象。我们从使用getBean(String beanName...

    YourBatman
  • Java之继承、抽象类、接口篇

    一、继承(extends) 什么是继承? 继承是对现实生活中的"分类"概念的一种模拟。 狮子拥有动物的一切基本特性,但同时又拥有自己的独特的特性,这就是"...

    CN_Simo
  • C++ Virtual And Pure Virtual Explained

    ---- Virtual Virtual Function是成员函数,其行为在派生类中被覆盖。与非虚函数不同的是,即使没有关于类的实际类型的编译时信息,也会保留...

    BrianLv
  • C++:44---关键字virtual、override、final

    用户3479834
  • Entity Framework 4.1 Code-First 学习笔记

      CodeFirst提供了一种先从代码开始工作,并根据代码直接生成数据库的工作方式。Entity Framework 4.1在你的实体不派生自任何基类、不添加...

    拓荒者-NET
  • C++:29 --- C++继承关系下的内存布局(下)

    C++ 提供继承的目的是在不同的类型之间提取共性。比如,科学家对物种进行分类,从而有种、属、纲等说法。有了这种层次结构,我们才可能将某些具备特定性质的东西归入到...

    用户3479834
  • C++基础-继承

    本文为 C++ 学习笔记,参考《Sams Teach Yourself C++ in One Hour a Day》第 8 版、《C++ Primer》第 5 ...

    叶余
  • Java核心技术 卷I 基础知识 学习笔记(4)

    一个对象变量可以指示多种实际类型的现象被称为多态。在运行时能够自动地选择调用哪个方法的现象被称为动态绑定。

  • 运筹学教学 | 十分钟教你求解分配问题(assignment problem)

    biu~ biu~ biu~ 我们的运筹学教学推文又出新文拉 还是熟悉的配方,熟悉的味道 今天向大家推出的是 运筹学教学--第六弹 分配问题(Assignmen...

    用户1621951
  • C++重要知识点小结---3

    C++重要知识点小结---1:http://www.cnblogs.com/heyonggang/p/3246631.html C++重要知识点小结---2:h...

    猿人谷

扫码关注云+社区

领取腾讯云代金券