经典关于多态的demo

 1 class Foo {
 2     public int a;
 3
 4     public Foo() {
 5         a = 3;
 6     }
 7
 8     public int addFive() {
 9         a += 5;
10         return a;
11     }
12
13     public int getA() {
14         return a;
15     }
16 }
17
18 public class Bar extends Foo {
19     public int a;
20
21     public Bar() {
22         a = 8;
23     }
24
25     public int addFive() {
26         this.a += 5;
27         return a;
28     }
29
30     public int getA() {
31         return a;
32     }
33
34     public static void main(String[] args) {
35         Foo foo = new Bar();
36         //调用的是子类中的方法
37         System.out.println(foo.getA());
38         //直接调用父类中的a
39         System.out.println("Value: " + foo.a);
40         //调用的是子类中的方法
41         System.out.println(foo.addFive());
42
43     }
44 }  

输出结果: 

Value: 3 
13

楼主,只需要明白一点就行了:在Java中重写指的是方法的重写,而不是属性的重写,还有多态也只是方法的多态 ,没有属性的多态。

时间: 2024-11-05 20:40:22

经典关于多态的demo的相关文章

步步为营-03-一个经典的多态案例

说明:相信大家都知道一个经典的案例.关于电脑对不同的设备进行读取. 1 定义一个基类(移动存储设备类)其中包括两个虚方法 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Computer { public abstract class MobileDevice { public abstract

python面向对象三大特性之继承、多态

继承 什么是继承          所谓继承指提供了同一类对象共性的处理方法,子类继承父类共性的东西. 这样有利于代码的复用性,即子类拥有父类的方法.通过继承创建的新类称为"子类"或"派生类",被继承的类称为"基类"."父类"或"超类". 继承可以想象成什么是什么的关系 python中类的继承分为:单继承和多继承 class Parent1: # 父类1 pass class Parent2: #父类2 p

Java基础知识回顾之三 ----- 封装、继承和多态

前言 在上一篇中回顾了java的修饰符和String类,这篇就来回顾下Java的三大特性:封装.继承.多态. 封装 什么是封装 在面向对象程式设计方法中,封装是指一种将抽象性函式接口的实现细节部份包装.隐藏起来的方法. 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问.要访问该类的代码和数据,必须通过严格的接口控制. 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段.适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性. 简

DSB

Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与寄存器,内核态与用户态及如何切换 存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池 磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU 磁带 设备驱动与控制器 总线与南桥和北桥 操作系统的启动流程 应用程序的启动流程 day02 作业要求一:整理操作系统博客 为何

Java面试参考指南(一)

Java是一种基于面向对象概念的编程语言,使用高度抽象化来解决现实世界的问题.    面向对象的方法将现实世界中的对象进行概念化,以便于在应用之间进行重用.例如:椅子.风扇.狗和电脑等. Java里的类(Class)是一个蓝图.模板,或者称之为原型,它定义了同一类事物的相同属性和行为.实例(Instance)是某个类的一个具 体实现,同一个类所有的实例拥有相同的属性.举例来说,你可以定义一个类叫做“房子(House)”,这个类拥有一个属性叫做“房间数 (number of room)”,这样你就

python 作业

Linux day01 计算机硬件知识整理 作业要求:整理博客,内容如下 编程语言的作用及与操作系统和硬件的关系 应用程序->操作系统->硬件 cpu->内存->磁盘 cpu与寄存器,内核态与用户态及如何切换 存储器系列,L1缓存,L2缓存,内存(RAM),EEPROM和闪存,CMOS与BIOS电池 磁盘结构,平均寻道时间,平均延迟时间,虚拟内存与MMU 磁带 设备驱动与控制器 总线与南桥和北桥 操作系统的启动流程 应用程序的启动流程 day02 作业要求一:整理操作系统博客 为何

Thinking in Netty

Thinking in Netty By 谢乐 Thinking in Netty 写在前面 Netty快速开始 Netty的架构 Netty的线程模型 1 服务端线程模型 1 客户端线程模型 Netty的API设计 Netty的通信过程 Netty中的设计模式 最后 1. 写在前面 Netty的词根为net, 那么我们就已经猜想到它与网络有关.官方对Netty的解释为: Netty是一种异步的基于事件驱动的Java网络应用框架,可用于构建高性能的协议服务器与客户端. 像我司以及其他互联网公司,

iOS---多线程实现方案一 (pthread、NSThread)

在iOS开发中,多线程是我们在开发中经常使用的一门技术.那么本文章将和大家探讨一下针对于多线程的技术实现.本文主要分为如下几个部分: iOS开发中实现多线程的方式 单线程 pthread NSThread 一.iOS开发中实现多线程的方式 pthread: 跨平台,适用于多种操作系统,可移植性强,是一套纯C语言的通用API,且线程的生命周期需要程序员自己管理,使用难度较大,所以在实际开发中通常不使用. NSThread: 基于OC语言的API,使得其简单易用,面向对象操作.线程的声明周期由程序员

【开发记录】微信小游戏开发入门——俄罗斯方块

叨叨 我在前一阵子,打算做一个微信小游戏,当然是单机的,只是为了了解小游戏开发的过程,最终选择了俄罗斯方块这一经典小游戏作为demo,源代码已托管值github,当然,这个游戏demo对用不并不友好,但是已经可以让我入门小程序开发了XD. demo地址:https://github.com/nbclw/Laya_Brick 准备 在任何开发前都需要对要开发的东西有一定的了解.准备: 小游戏原理:微信小游戏是属于H5游戏的一种吧,我是这样理解的:在H5中,有一个叫Canvas(画布)的存在,与电脑