深入Java萬(wàn)物之母Object類詳情
前言
在Java中,有一個(gè)很神奇的類,所有的類見(jiàn)了它都得恭敬的叫一聲“父親”,因?yàn)樗褪荍ava中的萬(wàn)物之父,Object類,它是所有類的默認(rèn)父類 ,子類不用使用extends關(guān)鍵字繼承它,不管是JDK中的類,還是自定義的類
一、接口補(bǔ)充知識(shí)
1.接口和接口之間繼承的,接口堅(jiān)決不能繼承一個(gè)類

2.如果一個(gè)類既需要繼承一個(gè)類,又需要實(shí)現(xiàn)多個(gè)接口時(shí)先使用extends繼承一個(gè)類,再使用implement實(shí)現(xiàn)多個(gè)接口

3.關(guān)于接口的命名規(guī)范:為了區(qū)分接口和類,命名接口使用 I 開(kāi)頭,IRun,ISwim,子類實(shí)現(xiàn)一個(gè)接口時(shí),命名以相應(yīng)的接口開(kāi)頭,以impl結(jié)尾
eg:如果是IRun的子類,RunImpl
如果子類實(shí)現(xiàn)多個(gè)父接口,不需要使用此規(guī)范來(lái)命名
二、Object類
在Java中Object類是萬(wàn)物之母
全名稱:包名.類名
java.lang.Object
1.重點(diǎn)一
Object類是Java中所有類的默認(rèn)父類,無(wú)需使用extends來(lái)定義,class聲明的類都有一個(gè)共同的父類,Object類
因?yàn)镺bject類是所有類的父類,使用Object引用來(lái)接收所有的類型,所有類都可以向上轉(zhuǎn)型轉(zhuǎn)為Object,參數(shù)最高統(tǒng)一化
Object obj1 = new Dog();
Object obj2 = new Person();
Objcet obj3 = new String();
這些都是可以的,都可以向上轉(zhuǎn)型為Object類型
如果有一個(gè)方法fun(Object obj),那么obj就可以接收所有類型的對(duì)象

2.重點(diǎn)二
Object類中的所有方法子類全都繼承下來(lái)了
我們的打印方法System.out.println(任意的數(shù)據(jù)類型) – > 默認(rèn)調(diào)用了該數(shù)據(jù)類型的toString()方法,因?yàn)镺bject類中存在toString();
此時(shí)子類沒(méi)有覆寫(xiě)toString(),調(diào)用的就是Object的toString();

我們一直說(shuō)“覆寫(xiě)”一下toString();而不說(shuō)寫(xiě)一個(gè)toString方法,就是因?yàn)镺bject類中有toString方法,子類覆寫(xiě)后就調(diào)用子類覆寫(xiě)之后的

3.重點(diǎn)三
Java中引用數(shù)據(jù)類型之間的相等使用equals方法,不能使用“ == ”, 比較的是地址

沒(méi)覆寫(xiě)之前調(diào)用的父類的equals方法還是比較的地址:


4.重點(diǎn)四
Object不僅是所有類(class)的父類,JDK對(duì)Object類做了擴(kuò)展,Object類可以接收所有引用數(shù)據(jù)類型的對(duì)象(接口,數(shù)組,類)

接口對(duì)象,數(shù)組對(duì)象,這些看起來(lái)毫不相關(guān)的對(duì)象,都可以使用object來(lái)接收,因此在Java中,若一個(gè)方法參數(shù)或者返回值是Object類型,說(shuō)明該參數(shù)或者返回值可以接收任意引用數(shù)據(jù)類型(數(shù)組,類,接口)
除了8大基本類型沒(méi)法使用Object類接收以外,所有的類型都能使用Object來(lái)接受,為了讓Object可以接收所有的類,此時(shí)包裝類就應(yīng)運(yùn)而生了,把8大基本類型變?yōu)轭悺?/p>
總結(jié)
本篇博客只是先帶大家了解Java中這個(gè)特殊的類,Object是Java中所有類的父類,它可以接收所有的引用數(shù)據(jù)類型的對(duì)象

到此這篇關(guān)于Java萬(wàn)物之母Object類詳情的文章就介紹到這了,更多相關(guān)Java Object類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
實(shí)戰(zhàn)干貨之基于SpringBoot的RabbitMQ多種模式隊(duì)列
RabbitMQ 是一個(gè)由Erlang語(yǔ)言開(kāi)發(fā)的AMQP的開(kāi)源實(shí)現(xiàn),支持多種客戶端。用于在分布式系統(tǒng)中存儲(chǔ)轉(zhuǎn)發(fā)消息,在易用性、擴(kuò)展性、高可用性等方面表現(xiàn)不俗,下文將帶你深入了解 RabbitMQ 多種模式隊(duì)列2021-09-09
Java Web實(shí)現(xiàn)自動(dòng)登陸功能
這篇文章主要為大家詳細(xì)介紹了Java Web實(shí)現(xiàn)自動(dòng)登陸功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08
springboot整合security和vue的實(shí)踐
本文主要介紹了springboot整合security和vue的實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09
使用OpenFeign實(shí)現(xiàn)服務(wù)調(diào)用的方法詳解
OpenFeign是運(yùn)行在客戶端的聲明式服務(wù)調(diào)用的框架,通過(guò)聲明接口的方式來(lái)達(dá)到對(duì)服務(wù)的調(diào)用,本文就來(lái)和大家講講如何使用OpenFeign實(shí)現(xiàn)服務(wù)調(diào)用吧2023-06-06
Java使用UTF-8或GBK編碼后還是亂碼問(wèn)題的解決辦法
在java中處理字符時(shí),經(jīng)常會(huì)發(fā)生亂碼,下面這篇文章主要給大家介紹了關(guān)于Java使用UTF-8或GBK編碼后還是亂碼問(wèn)題的解決辦法,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-05-05

