Java基礎入門之Object類、匿名內部類、構造方法的繼承解析
前言
大家好,我是Java進階者。這篇文章我們主要介紹Java基礎中的Object類、匿名內部類、構造方法的繼承知識,一起來學習下吧!
一、Object類
1.Object類是所有類的父類,所有類都繼承Object類。
2.Object類方法有:
toString()方法:這個方法用的比較多,它是返回該對象的字符串,一般子類會覆蓋;
getClass()方法:返回Object運行的類型;
equals()方法:判斷對象的內容是否相等;
finalize()方法:這個方法主要用來釋放資源。這個方法用的少,無法確定什么時候調用。
hashCode()方法:返回這個對象的哈希值;
notify()方法:這個方法是喚醒在這個對象上等待的某個線程;
notifyAll()方法:這個方法是喚醒在這個對象上等待的所有線程;
wait()方法:當前線程等待這個對象的鎖,它是具有這個對象的鎖。wait()方法表示一直等待,一直到得到鎖或被中斷。wait(long timeout)設定一個超時間隔,如果在規定時間內沒有獲得鎖就返回。
clone()方法:保護方法,實現對象的淺復制。當實現了Cloneable接口才能夠調用這個方法,不然會拋出異常。
3.Object類的例子
例如:
- //定義水果類
- class Fruit{
- double weight=10;//定義weight屬性為重量
- //定義info()方法
- void info(){
- System.out.println("我是一個水果,重量為:"+weight+"g!");
- }
- }
- public class p32 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Fruit f=new Fruit();//創建Fruit類對象
- System.out.println(f.toString());//調用toString方法
- }
- }
運行的結果是:
從上面代碼中,在輸出的語句中是調用了Fruit對象的toString()方法。這個Fruit類是繼承Object類,在Object定義了toString()方法,輸出這個對象的信息。
4.重寫Object類toString()方法例子
- //定義水果類
- class Fruit{
- double weight=10;//定義weight屬性為重量
- //重寫Object類的toString()方法
- public String toString(){
- return "我是一個水果,重量為:"+weight+"g!";
- }
- }
- public class p32 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Fruit f=new Fruit();//創建Fruit類對象
- System.out.println(f.toString());//調用toString方法
- }
- }
運行的結果是:
從上面代碼中,在定義的水果類中重寫Object類的toString()方法,Fruit類是繼承Object類,輸出該對象的信息。
二、匿名內部類
1.什么是匿名內部類
匿名內部類簡單來說就是不知道這個類的名字。創建匿名內部類,只要調用一次就可以了。
2.匿名內部類的語法
- new 類名(參數) | 父接口() {
- // 匿名內部類的類體部分
- }
3.如何實現匿名內部類例子
- //定義水果類接口
- interface Fruit{
- double weight=30;//定義weight屬性為重量
- void info();//定義抽象方法
- }
- public class p33 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- //定義匿名內部類作為參數傳給fruitInfo()方法
- fruitInfo(new Fruit(){
- //實現info()方法
- public void info(){
- System.out.println("我是一個水果,重量為"+weight+"g!");
- }
- });
- }
- //定義靜態方法fruitInfo()
- public static void fruitInfo(Fruit f){
- f.info();//調用對象f的info()方法
- }
- }
運行的結果是:
從上面代碼中,首先是定義了水果類接口,定義了weight屬性和info()抽象方法。在調用fruitInfo方法,把方法的參數寫在new Fruit(){}相當于實例化對象,把對象傳給fruitInfo方法。在大括號里面是子類匿名。
三、構造方法的繼承
1.構造方法的繼承的特點:
① 子類是可以無條件地繼承父類的無參數的構造方法;
② 如果子類自己沒有構造方法,將繼承父類的無參數構造方法成為自己的構造方法;如果子類自己定義了構造方法,當在創建新對象時,它將先執行繼承父類的無參數構造方法,然后再執行自己的構造方法。
③ 對于父類的含參數的構造方法,子類在自己構造方法中用“super”關鍵字來調用它,在這個調用語句需要是子類構造方法的第一個可執行語句。
2.構造方法的繼承例子:
- //定義父類
- class Father{
- public Father(){
- System.out.println("父類...");
- }
- public Father(String name){
- System.out.println("父類名字為:" + name);
- }
- }
- //定義子類繼承父類
- class Son extends Father{
- public Son(){
- super("Tom");
- System.out.println("子類...");
- }
- }
- public class p39 {
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- Son son = new Son();//創建Son的實例對象
- }
- }
運行的結果是:
四、總結
本文主要介紹了Object類、匿名內部類、構造方法的繼承。
Object類是所有類的父類,所有類都繼承Object類。介紹了Object類的一些方法,通過Object類例子和重寫Object類toString()方法例子幫助理解用法。
匿名內部類簡單來說就是不知道這個類的名字。創建匿名內部類,只要調用一次就可以了。
構造方法的繼承介紹了它的特點,通過他的例子來了解這個構造方法的繼承。
本文轉載自微信公眾號「Java進階學習交流」,可以通過以下二維碼關注。轉載本文請聯系Java進階學習交流公眾號。