java 判断object类型_Java学习-方法与多态的学习心得

一 1.什么是方法重写
方法的重写或方法的覆盖(overriding)
子类根据需求对从父类继承的方法进行重新编写
重写时,可以用super.方法的方式来保留父类的方法
构造方法不能被重写
2.方法重写规则
(1)方法名相同
(2)参数列表相同
(3)返回值类型相同或者是其子类
(4)访问权限不能严于父类
(5)父类的静态方法不能被子类覆盖为非静态方法,父类的非静态方法不能被子类覆盖为静态方法
(6)子类可以定义与父类同名的静态方法,以便在子类中隐藏父类的静态方法(注:静态方法中无法 使用super
(7)父类的私有方法不能被子类覆盖
(8)不能抛出比父类方法更多的异常
3.方法重写与方法重载的区别

4.Object类
1.Object类是所有类的父类
public class Pet extends Object {
……
}
2.Object类被子类经常重写的方法

(1)toString():返回当前对象本身的有关信息,按字符串对象返回
(2)equals():比较两个对象是否是同一个对象,是则返回true
(3)hashCode():返回该对象的哈希代码值
(4)getClass():获取当前对象所属的类信息,返回Class对象
3.Object类的equals()方法
比较两个对象是否是同一个对象,是则返回true
操作符==
简单数据类型,直接比较值。如1==2
引用类型,比较两者是否为同一对象
(1)Object类的equals()方法与==没区别
(2)当有特殊需求,如认为属性相同即为同一对象时,需要重写equals()
比较两个对象是否是同一个对象,是则返回true了equals()方法,把equals()方法的判断变为了判断其值
二.多态
1.什么是多态
同一个引用类型,使用不同的实例而执行不同操作
2.为什么使用多态
频繁修改代码,代码可扩展性、可维护性差,使用多态进行优化
3.抽象方法
抽象方法没有方法体
抽象方法必须在抽象类里
抽象方法必须在子类中被实现,除非子类是抽象类
4.向上转型
向上转型:父类的引用指向子类对象,自动进行类型转换
<父类型> <引用变量名> = new <子类型>();
此时通过父类引用变量调用的方法是子类覆盖或继承父类的方法,不是父类的方法
此时通过父类引用变量无法调用子类特有的方法
5.向下转型
向下转型:将一个指向子类对象的父类引用赋给一个子类的引用,即:父类类型转换为子类类 型。需强制类型转换
<子类型> <引用变量名> = (<子类型> )<父类型的引用变量>;
在向下转型的过程中,如果没有转换为真实子类类型,会出现类型转换异常
6.instanceof
减少在向下转型的过程中,没有转换为真实子类类型的类型转换异常
使用instanceof时,对象的类型必须和instanceof后面的参数所指定的类在继承上有上下级关
系
instancof的作用是什么
instanceof 运算符是用来在运行时判断对象是否是指定类及其父类的一个实例。
比较的是对象,不能比较基本类型
7.多态的应用
使用父类作为方法的形参,是Java中实现和使用多态的主要方式
使用父类作为方法的返回值,也是Java中实现和使用多态的主要方式
多态的作用
把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化
相关文章:

实习日志(2)2011-12-30
这篇文章并没有给出如何使用ResultSet的具体例子,只是从ResultSet的功能性上进行了详细的讲述。希望这篇文章对大家理解ResultSet能够有所帮助。下面就是这篇文章的具体内容。 结果集(ResultSet)是数据中查询结果返回的一种对象,可以说结果集是一个…

Javascript使用三大家族和事件来DIY动画效果相关笔记(一)
1.offset家族◆offsetWidth和offsetHeight表示盒子真实的宽度高度,这个真实的宽度包括 四周的边框、四周的padding、及定义的宽度高度或内容撑开的高度和宽度,可以用来检测盒子实际的大小,属性也是只读不可写的,返回的是不带单位的…

React 学习
一、搭建webpack4.x环境 1.创建工程文件夹(ReactDemo) 2.在工程文件夹下,快速初始化项目 npm init -y // 创建一个package.json文件 3.在工程文件夹下,创建源码文件夹(src)和编译打包文件夹…

python创建mysql数据库_python 怎么创建create mysql的数据库
展开全部 我采用的是MySQLdb操作的MYSQL数据库。先来一个简单的例2113子吧: import MySQLdb try: connMySQLdb.connect(hostlocalhost,userroot,passwdroot,dbtest,port3306) curconn.cursor() cur.execute(select * from user) cur.close() conn.close() except My…

杂谈---改变个人习惯
在提升编码技术的过程,自己也在生活中学到了很多。发现了自己的很多缺陷:不够勇敢、不够冒险、骄傲的无厘头,还有自己对情绪的掌控远没有自己想象的那么有火候,这段时间也得好好谢谢她,要不然我压根意识不到问题有多严…

ldconcig详解
ldconfig是一个动态链接库管理命令,为了让动态链接库为系统所共享,还需运行动态链接库的管理命令--ldconfigldconfig 命令的用途,主要是在默认搜寻目录(/lib和/usr/lib)以及动态库配置文件/etc/ld.so.conf内所列的目录下,搜索出可共享的动态链接库(格式如前介绍,lib…

第3章—高级装配—条件化的Bean
条件化的Bean 通过活动的profile,我们可以获得不同的Bean。Spring 4提供了一个更通用的基于条件的Bean的创建方式,即使用Conditional注解。 Conditional根据满足某个特定的条件创建一个特定的Bean。比如,当某一个jar包在一个类路径下时&#…

c#委托与事件(二)
这篇博客是在上篇的基础开始讲述了一下委托的一些用法,首先我举一个例子说明了一下前面章节的知识点,接下来我说了将方法作为参数传递的一个案例,接下来实现了一个委托实现冒泡排序的方法,如果你们和我一样正在学习,希…

互联网公司java面试题(一)
1、JDK和JRE区别? JDK是整个JAVA的核心,包括了Java运行环境JRE,一堆Java工具和Java基础的类库。通过JDK开发人员将源码文件(java文件)编译成字节码文件(class文 件)。JRE是Java运行环境,不含开发环境,即没有编译器和调…

python属于哪种类型的语言_Python是什么类型的编程语言,有什么特性
由于近几年人工智能的不断发展,Python也跟着火了,因为Python是深度学习技术的主流应用编程语言。同时它的应用场景很多,被称为“胶水语言”。下面给大家科普一下Python这门神奇的编程语言,以及语言特性,帮大家更清晰的…

Linux下C语言线程池的实现(1)
http://hi.baidu.com/lingiloveyou/blog/item/21e57cf3322a6b40342accc7.html 什么时候需要创建线程池呢?简单的说,如果一个应用需要频繁的创建和销毁线程,而任务执行的时间又非常短,这样线程创建和销毁的带来的开销就不容忽视&am…
一篇简单易懂的原理文章,让你把JVM玩弄与手掌之中
jvm原理 Java虚拟机是整个java平台的基石,是java技术实现硬件无关和操作系统无关的关键环节,是java语言生成极小体积的编译代码的运行平台,是保护用户机器免受恶意代码侵袭的保护屏障。JVM是虚拟机,也是一种规范,他遵循…

python代码画皮卡丘_Python气象绘图实例我们一起画台风(代码+数据)
前段时间袭击中国的超强台风“利奇马”,以及这两天袭击美国的五级飓风“多利安”,让我们感受到了大自然的力量。所以,今天分享一个简单的Python实例,也算是延续前面python气象绘图系列(点击链接1;点击链接2)࿰…

Windows Socket编程笔记之最简单的小Demo
Windows Socket编程的大致过程:服务器端:----过程-------------对应的API------- 0.初始化 | WSAStartup() 1.创建Socket | socket() 2.绑定Socket | bind() 3.监听 | listen() 4.接受连接 | accept() 5.接收/发送数据 | recv()/send()…

React项目实战
一、环境搭建 1.安装react-cli脚手架(保证提前安装好Node最新版本) npm config set registry http://registry.npm.taobao.org/ npm config set sass-binary-site http://npm.taobao.org/mirrors/node-sass npm isntall -g create-react-app 2.查看react…

win7完美兼容DynamipsGUI(小凡模拟器)攻略
博主又是好久没写了,今天闲来无事与大家一起分享一下如何在windows7平台下完美兼容DynamipsGUI(小凡模拟器)的一个小窍门~ 对于学习cisco的朋友来说,DynamipsGUI(小凡模拟器)一定不陌生,在这就不…

使用PHPExcel 对表格进行,读取和写入的操作。。。。
下面的代码是使用PHPExcel 对多个表格数据进行读取, 然后整合的写入新的表格的方法!!!代码有点粗糙 , 多多保函!!! 这里有些地方注意下,如果你的表格数据过大,…

c# .netframwork 4.0 调用 2.0时报错 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。...
“System.IO.FileLoadException”类型的未经处理的异常在 XXX.dll 中发生 其他信息: 混合模式程序集是针对“v2.0.50727”版的运行时生成的,在没有配置其他信息的情况下,无法在 4.0 运行时中加载该程序集。 这时需要改dbconfig配置 在configuration 节点…

python多线程并发_Python进阶记录之基础篇(二十四)
回顾在Python进阶记录之基础篇(二十三)中,我们介绍了进程的基本概念以及Python中多进程的基本使用方法。其中,需要重点掌握多进程的创建方法、进程池和进程间的通信。今天我们讲一下Python中的多线程。线程的基本概念线程是操作系统能够进行运算调度的最…

awk处理文件内容格式
今天运营出了点问题,需要对特定时间段充值数做一个处理,文件格式有特定要求,要符合erlang的格式{roleID,gold}.mysql导出所有数据结果如下【取部分数据看】:kuwo 4 50004106230500 100kuwo 4 50004106230900 …

QQ远程协助没动静?QQ版本有讲究
一位网友觉得电脑反应速度慢了,想通过QQ远程协助让我处理一下。不料接受请求后,等了许久都显示网友电脑的桌面,而网友那边QQ也没有任何提示。 反复尝试了几次都是如此。 询问网友得知他用的QQ为2011版,而我使用的QQ是2008版。难…

java课堂测试样卷-----简易学籍管理系统
程序设计思路:分别建立两个类:ScoreInformation类(用来定义学生的基本信息以及设置set和get函数)ScoreManagement类(用来定义实现学生考试成绩录入,考试成绩修改,绩点计算等功能的函数)和一个主…
python3安装setuptools步骤_setuptools、pip的安装
第2篇分享 安装setuptools 下载setuptools源码setuptools-25.2.0.tar.gz选择需要的版本 这是一个压缩文件,将其解压到桌面,并进入该文件夹 按住shift键后,在文件夹空白处点击鼠标右键,选择:在此处打开命令窗重点&#…

如何将简单CMS后台管理系统示例转换为Java、Php等不同后台语言的版本
等下要去坐车,今天就不继续唠叨开发过程了,来谈一下普遍比较关心的后台语言问题。学习Ext JS,笔者一直强调学习的中心思路是“界面与数据是分离”。只要好好掌握这个思路,深入了解Ext JS的运作过程,就不会为后台语言使…

[面试]future模式
Future模式 什么是future模式? 传统单线程环境下,调用函数是同步的,必须等待程序返回结果后,才可进行其他处理。 Futrue模式下,调用方式改为异步。 Futrue模式的核心在于:充分利用主函数中的等待时间,利用…

java ide
tidespringsource sts a vmware product plugin:Aptana Studio 3(集成了Git) Run on Jettyeclipse for jee plugin:JBoss Tools,m2eclipe,spirng tools,svn

成长秘笈:是你教我,不是我教你
郑昀 20180622 “谢谢你,你是第一个面试的时候跟我说这么详细的。那我到你们公司之后怎么就能成长了呢?” “你们这些人最大的问题是出不了方案。 为什么出不了方案? 因为没有养成深度思考问题的习惯。 实现方案、算法、数据迁移、准备数据、…

计算机网络面试题(一)
1、OSI,TCP/IP,五层协议的体系结构,以及各层协议 OSI分层 (7层):物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。 TCP/IP分层(4层):网络接口 网络层、运…

Ubuntu下安装和配置Apache2
在Ubuntu中安装apache 安装指令:sudo apt-get install apache2 安装结束后: 产生的启动和停止文件是:/etc/init.d/apache2 启动:sudo apache2ctl -k start 停止:sudo apache2ctl -k stop 重新启动:sudo apa…

苹果电脑安装python3密码_mac系统安装Python3初体验
前沿 对于iOS开发不要随便拆卸系统自带的Python,因为有很多 library 还是使用 Python2.7。 1 安装Xcode 1.1 App Store 搜索Xcode 并安装 1.2 安装 Xcode command line tool 1.2.1 打开命令行terminal工具 control space 输入terminal 回车 1.2.2 安装Xcode command line tool…