博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
面向对象(Object类)
阅读量:5369 次
发布时间:2019-06-15

本文共 1088 字,大约阅读时间需要 3 分钟。

Object类
object是java中所有对象直接或者间接的超类/父类
该类中具备的肯定是所有对象都具备的功能(向上抽取)
-----------------------------------
object类构造函数中调用的super就是自己
object类提供的方法,也就是说,你任意建一个类,肯定会有这些方法可以使用
看这些方法里面,有一个equals()方法,接收Object类型的参数,那这不就是多态的体现吗
Person p1 = new Person();
Animal a1 = new Animal();
p1.equals(a1);
 
看参数,其实就是这样的
Object o = new Animal();    -->向上转型,多态的体现
_____________________________________________________________________________
实例
定义类中的比较方法
看看里面的比较方法是怎么来的
首先,equals方法是重写的Object类的equals
并且,比较this.num == 参数.num -->会报错,因为父类Object方法中没有num这个变量
所以,要向下转型 Demo d =(Demo)obj;
此时,在比较时,如果传入的两个参数类型不同,就会抛出异常ClassCastException
怎么解决呢,这就需要判断一下,如果传入的参数与这个类类型不同,直接返回false(类型都不一样,怎么可能相等)
class Demo 
{
    private int num;
    Demo(int num)
    {
        this.num = num;
    }
    public boolean equals(Object obj)//Object obj = new Demo();
    {
 
        if(!(obj instanceof Demo))
            return false;
        Demo d = (Demo)obj;
 
        return this.num == d.num;
    }
}
——————————————————————————————
实例
看方法中还有一个toString()方法,也就是说,java所有类都可以转换成字符串
Person p = new Person();
p.toString();
返回的是一个地址值(哈希值),因为这是引用类型
Object方法里面还有一方法,返回哈希值hashCode

转载于:https://www.cnblogs.com/aisi-liu/p/4227620.html

你可能感兴趣的文章
实战开发一个Nginx扩展 (Nginx Module)
查看>>
转:FreeBSD.org 这次的入侵事件
查看>>
使用node.js编写mongoDB中的MapReduce
查看>>
使用Spring Boot接受HTTP GET/POST请求的一个SQL并返回结果
查看>>
[LeetCode] 31. Next Permutation ☆☆☆
查看>>
【数据库】主键、外键、索引
查看>>
【leetcode】atoi (hard) ★
查看>>
hdu 5112 (2014北京现场赛 A题)
查看>>
项目Beta冲刺(团队)——凡事预则立
查看>>
堆与堆排序
查看>>
pycharm+selenium搭建环境
查看>>
letecode [118] - Pascal's Triangle
查看>>
Sampling
查看>>
C#中的委托和事件(续)
查看>>
C#例子 易懂故事 接口 委托 事件 异步通知 好玩.
查看>>
模糊查询
查看>>
mybatis整合Spring(一)
查看>>
第六章 组件 54 组件-创建组件的方式3
查看>>
CSS基础学习-10.CSS伸缩盒(老版本)
查看>>
JS时间戳如何转换为时间格式?
查看>>