疯狂java讲义——多态

父类 f = new 子类();

引用变量f,在编译时类型是父类,在运行时类型是子类类型。当这个引用变量调用子类重写父类的那个方法的时候,实际执行的是子类中重写后的那个方法。当运行的时候调用该变量的方法时,其方法行为总是表现出子类方法行为特征,而不是父类方法行为特征,这就可能出现:相同类型的变量,调用同一个方法时呈现出多种不同的行为特征,这就是多态。

//f.子类独有方法,这样虽然f引用变量实际上确实包含了这个方法,但它编译的时候是父类类型,因此报错。

与方法不同的是,对象的实例变量不具备多态   f.变量(父类子类都存在),但是输出的是父类的变量

引用变量的强制类型转换

instanceof 运算符

时间: 2024-10-27 13:44:34

疯狂java讲义——多态的相关文章

疯狂Java讲义(第4版) PDF 电子书 百度云 网盘下载

java电子书推荐理由:1)作者提供用于学习和交流的配套网站及作者亲自在线的答疑微信群.QQ群. 2)DVD光盘中含 1500分钟图书部分内容的相关视频 图书配套代码 Java面试题真题 PPT课件 设计模式电子书 有助于完成课后练习的大量完整案例 3)<疯狂Java讲义>历时十年沉淀,现已升级到第4版,经过无数Java学习者的反复验证,被包括北京大学在内的大量985.211高校的优秀教师引荐为参考资料.选作教材. 4)<疯狂Java讲义>曾翻译为中文繁体字版,在宝岛台湾上市发行.

《疯狂Java讲义》(三十五)---- 网络编程

Java网络通信非常简单,服务器端通过ServerSocket建立监听,客户端通过Socket连接到指定服务器后,通信双方就可以通过IO流进行通信. IP地址用于唯一地标识网络中的一个通信实体.端口用于表示数据交给哪个通信程序处理. 公认端口从0到1023,紧密绑定一些特定的服务.注册端口从1024到49151,应用程序通常应该使用这个范围的端口.动态端口从49152到65535,是应用程序使用的动态端口,应用程序一般不会主动使用这些端口. package com.ivy.net; import

疯狂java讲义——继承

本文章只是记录我在学习疯狂java讲义里面,对之前java知识查缺补漏进行的总结. 方法重写 方法重写要遵循"两同两小一大"规则."两同"即方法名相同.形参列表相同:“两小”指的是子类方法返回值类型应比父类方法返回值类型更小或相等,子类方法声明抛出异常类应比父类方法声明抛出异常类更小或相等;"一大"指的是子类方法访问权限应比父类方法访问权限更大或相等.尤其指出,覆盖方法和被覆盖方法要么都是类方法,要么都是实例方法,不能一个是类方法,一个是实例方法

疯狂java 讲义第三章练习题---画圆

public class PaintRound{ /** * @author Dream_e. * @version v1.0 */ private int r;//圆的半径 PaintRound(int r){ this.r = r; } public void paint(){ int y = 2*r;//y的最大值为半径的2倍 int x = 0; int c = 0; int z = 2;//坐标轴递减量. for(int j = y; j >= 0; j-=z){ x = getX(r

疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条

http://blog.csdn.net/terryzero/article/details/3797782 疯狂JAVA讲义---第十二章:Swing编程(五)进度条和滑动条 标签: swing编程java任务timerstring 2009-01-16 21:12 6722人阅读 评论(0) 收藏 举报  分类: J2SE(63)  版权声明:本文为博主原创文章,未经博主允许不得转载. 前几天讲了Swing基本的控件,今天开始讲特殊控件.一天讲2个吧,首先讲用JProgressBar,Pro

学在前面——《疯狂JAVA讲义》学习笔记

一直放弃JAVA,觉得身为前端掌握html.css.js就可以胜任工作了,但是最近组里后台太忙了,有时候感觉只要在后台改一点东西就能满足前台所需要的数据了,但是自己却不会改,后台还木有空,于是觉得,嗯,身为一个IT的新新人才,当然也要回基本的JAVA了,不要求会写,但是基本的会改还是必要的~~ 于是看了各种JAVA从入门到精通的帖子,选中了<疯狂JAVA讲义>这本书,尽管书有点老了,但是感觉很全面,讲的很好,希望能够有所收获~俗话说,带着问题去学习,发现尽管很久以前了解过JAVA,但是前言里面

udp协议基础(转自疯狂java讲义)

第17章  网络编程 17.4  基于UDP协议的网络编程 UDP协议是一种不可靠的网络协议,它在通信实例的两端各建立一个Socket,但这两个Socket之间并没有虚拟链路,这两个Socket只是发送.接收数据报的对象.Java提供了DatagramSocket对象作为基于UDP协议的Socket,使用DatagramPacket代表DatagramSocket发送.接收的数据报. 17.4.1  UDP协议基础 UDP协议是英文User Datagram Protocol的缩写,即用户数据报

《疯狂java讲义》读后感

<疯狂java讲义·第三版>,全书共851页,18章. 目录如下: 第1章 Java语言概述与开发环境 第2章 理解面向对象 第3章 数据类型和运算符 第4章 流程控制与数组 第5章 面向对象(上) 第6章 面向对象(下) 第7章 Java基础类库 第8章 Java集合 第9章 泛型 第10章 异常处理 第11章 AWT编程 第12章 Swing编程 第13章 MySQL数据库与JDBC编程 第14章 Annotation(注释) 第15章 输入/输出 第16章 多线程 第17章 网络编程 第

《疯狂Java讲义(第3版)》.(李刚)——面向对象及UML

1.面向对象的基本特征:封装.继承.多态 Java完全支持使用对象.类.继承.封装.消息等基本概念来进行程序设计,允许从现实世界中客观存在的事物(即对象)出发来构造软件系统,在系统构造中尽可能运用人类的自然思维方式.实际上,这些优势是所有面向对象编程语言的共同特征.而面向对象的方式实际上由OOA(面向对象分析).OOD(面向对象设计)和OOP(面向对象编程)三个部分有机组成,其中,OOA和OOD的结构需要使用一种方式来描述并记录,目前业界统一采用UML(统一建模语言)来描述并记录OOA和OOD的