自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

一篇文章教會(huì)你使用Java中的Super關(guān)鍵字基本用法

開(kāi)發(fā) 后端
在繼承關(guān)系中,子類(lèi)會(huì)繼承父類(lèi)所定義的方法,當(dāng)在子類(lèi)中對(duì)繼承方法進(jìn)行一些修改,這就是重寫(xiě)父類(lèi)方法。也就是說(shuō)子類(lèi)包含父類(lèi)同名方法。

 [[358242]]

一、重寫(xiě)父類(lèi)方法

1.什么是重寫(xiě)父類(lèi)方法

在繼承關(guān)系中,子類(lèi)會(huì)繼承父類(lèi)所定義的方法,當(dāng)在子類(lèi)中對(duì)繼承方法進(jìn)行一些修改,這就是重寫(xiě)父類(lèi)方法。也就是說(shuō)子類(lèi)包含父類(lèi)同名方法。

2.重寫(xiě)父類(lèi)方法遵循“兩同兩小一大”原則

兩同:方法名,參數(shù)列表相同。

兩小:子類(lèi)方法返回值類(lèi)型小于等于父類(lèi)方法返回值類(lèi)型;子類(lèi)方法聲明拋出的異常類(lèi)小于等于父類(lèi)方法聲明拋出的異常類(lèi)。

一大:子類(lèi)方法的訪問(wèn)權(quán)限大于等于父類(lèi)方法的訪問(wèn)權(quán)限。

3.重寫(xiě)父類(lèi)方法案例

例如:

  1. //定義Animal類(lèi) 
  2. class Animal{ 
  3. public String name;//名字屬性 
  4. public int age;//年齡屬性 
  5. //動(dòng)物叫的方法 
  6. void shout(){ 
  7.         System.out.print("動(dòng)物發(fā)出的叫聲"); 
  8. //定義Cat繼承Animal類(lèi) 
  9. class Cat extends Animal{ 
  10. void shout(){ 
  11.         System.out.print("喵喵喵~~~~"); 
  12. //顯示名字和年齡方法 
  13. public void show(){ 
  14.         System.out.print("我是"+name+","+"今年"+age+"歲"); 
  15. public class p20 { 
  16. public static void main(String[] args) { 
  17.     // TODO Auto-generated method stub 
  18.     Cat c=new Cat();//創(chuàng)建Cat類(lèi)實(shí)例對(duì)象 
  19.     c.name="英國(guó)短毛貓";//給Cat類(lèi)的name屬性賦值 
  20.     c.age=2;//給Cat類(lèi)的age屬性賦值 
  21.     c.show();//調(diào)用Cat類(lèi)的show()方法 
  22.     c.shout();//調(diào)用Cat類(lèi)的shout()方法 
  23.     } 

輸出的結(jié)果是:

  1. 我是英國(guó)短毛貓,今年2歲喵喵喵~~~~ 

從上面代碼中,Cat類(lèi)是繼承Animal類(lèi)的shout()方法,當(dāng)Cat類(lèi)繼承Animal類(lèi)還沒(méi)有shout()方法時(shí),調(diào)用的Animal的shout()方法并打印“動(dòng)物發(fā)出的叫聲”,這時(shí)就不能描述具體的動(dòng)物叫聲,Cat類(lèi)對(duì)象表示貓類(lèi),發(fā)出的叫聲是“喵喵喵~~~”。方法的重寫(xiě)就是在Cat子類(lèi)中定義一個(gè)shout()方法對(duì)父類(lèi)的方法進(jìn)行重寫(xiě)。在調(diào)用Cat類(lèi)對(duì)象的shout()方法時(shí),只會(huì)調(diào)用子類(lèi)重寫(xiě)的該方法,沒(méi)有去調(diào)用父類(lèi)的shout()方法。

二、super關(guān)鍵字

1.什么是super關(guān)鍵字

super是當(dāng)前類(lèi)的直接父類(lèi)對(duì)象,是對(duì)當(dāng)前對(duì)象的直接父類(lèi)對(duì)象的引用。

2.如果當(dāng)子類(lèi)重寫(xiě)父類(lèi)的方法后,子類(lèi)對(duì)象是不能訪問(wèn)父類(lèi)被重寫(xiě)的方法,可以使用super關(guān)鍵字訪問(wèn)父類(lèi)的成員

3.super關(guān)鍵字調(diào)用父類(lèi)的成員變量和成員方法格式

  1. super.成員變量 
  2. Super.成員方法([參數(shù)1,參數(shù)2,參數(shù)3,....]) 

4.super關(guān)鍵字的用法案例

例如:

  1. //定義Animal類(lèi) 
  2. class Animal{ 
  3.     String name="動(dòng)物";//name屬性 
  4.     int age=6;//age屬性 
  5.     void shout(){ 
  6.     System.out.println("動(dòng)物發(fā)出的叫聲"); 
  7.     } 
  8. class Dog extends Animal{ 
  9.     String name="狗";//name屬性 
  10.     //重寫(xiě)父類(lèi)的shout方法 
  11.     void shout(){ 
  12.     super.shout(); 
  13. //訪問(wèn)父類(lèi)成員變量 
  14. void show(){ 
  15.     System.out.println("名字:"+super.name+","+"年齡:"+super.age+"歲!"); 
  16.     } 
  17. public class p22 { 
  18. public static void main(String[] args) { 
  19.     // TODO Auto-generated method stub 
  20.     Dog d=new Dog();//創(chuàng)建狗的對(duì)象 
  21.     d.shout();//調(diào)用Dog對(duì)象的重寫(xiě)的shout方法 
  22.     d.show();//調(diào)用Dog對(duì)象的show方法 
  23.     } 

輸出的結(jié)果是:

  1. 動(dòng)物發(fā)出的叫聲 
  2. 名字:動(dòng)物,年齡:6歲! 

從上面代碼中,首先定義一個(gè)Animal類(lèi),在Dog類(lèi)繼承Animal類(lèi),然后重寫(xiě)了父類(lèi)的shout()方法,在子類(lèi)中使用super.shout()調(diào)用父類(lèi)重寫(xiě)的方法,在show()方法訪問(wèn)父類(lèi)的屬性,super關(guān)鍵字是可以訪問(wèn)屬性和方法。

三、super關(guān)鍵字調(diào)用父類(lèi)的構(gòu)造方法

1.super關(guān)鍵字調(diào)用父類(lèi)的構(gòu)造方法格式

  1. super([參數(shù)1,參數(shù)2,參數(shù)3,...]) 

2.super關(guān)鍵字調(diào)用父類(lèi)的構(gòu)造方法案例

例如:

  1. //定義Fruit類(lèi) 
  2. class Fruit{ 
  3. //定義Fruit類(lèi)有參數(shù)的構(gòu)造方法 
  4. public Fruit(String name,double weight){ 
  5.         System.out.print("我是一個(gè)"+name+","+"重量為:"+weight+"g!"); 
  6.   } 
  7. //定義Cherry繼承Fruit類(lèi) 
  8. class Cherry extends Fruit{ 
  9. public Cherry(){ 
  10.         super("櫻桃",66);//調(diào)用父類(lèi)有參數(shù)的構(gòu)造方法 
  11.  
  12. public class p23 { 
  13. public static void main(String[] args) { 
  14.         // TODO Auto-generated method stub 
  15.         Cherry c=new Cherry();//實(shí)例化子類(lèi)Cherry對(duì)象 
  16.   } 

輸出的結(jié)果是:

  1. 我是一個(gè)櫻桃,重量為:66.0g! 

從上面的代碼中,首先是定義了一個(gè)Fruit類(lèi),在Fruit類(lèi)中定義了有參數(shù)的構(gòu)造方法。定義Cherry繼承Fruit類(lèi),調(diào)用父類(lèi)有參數(shù)的構(gòu)造方法。在實(shí)例化Cherry對(duì)象就會(huì)調(diào)用Cherry類(lèi)的構(gòu)造方法,Cherry類(lèi)的構(gòu)造方法被調(diào)用時(shí)父類(lèi)的構(gòu)造方法也一樣被調(diào)用了。super調(diào)用父類(lèi)構(gòu)造方法的代碼要寫(xiě)子類(lèi)構(gòu)造方法的第一行,只可以出現(xiàn)一次。

四、 總結(jié)

本文主要介紹了重寫(xiě)父類(lèi)的方法和super關(guān)鍵字。

重寫(xiě)父類(lèi)方法就是子類(lèi)包含父類(lèi)同名方法,遵循兩同兩小一大”原則。

super關(guān)鍵字是當(dāng)前類(lèi)的直接父類(lèi)對(duì)象,是對(duì)當(dāng)前對(duì)象的直接父類(lèi)對(duì)象的引用,通過(guò)super關(guān)鍵字案例理解這個(gè)用法。

此外,本文還介紹了super關(guān)鍵字調(diào)用父類(lèi)的構(gòu)造的方法,介紹了它的格式和super關(guān)鍵字調(diào)用父類(lèi)的構(gòu)造方法案例。希望大家通過(guò)本文的學(xué)習(xí),對(duì)你有所幫助!

本文轉(zhuǎn)載自微信公眾號(hào)「Java進(jìn)階學(xué)習(xí)交流 」,可以通過(guò)以下二維碼關(guān)注。轉(zhuǎn)載本文請(qǐng)聯(lián)系Java進(jìn)階學(xué)習(xí)交流 公眾號(hào)。

 

責(zé)任編輯:武曉燕 來(lái)源: Java進(jìn)階學(xué)習(xí)交流
相關(guān)推薦

2021-02-19 19:35:53

SVG 形狀元素

2021-04-23 10:01:19

JavaScript 關(guān)鍵字對(duì)象

2019-10-17 19:15:22

jQueryJavaScript前端

2024-04-01 00:00:00

??defer??工具管理

2021-12-28 09:27:45

Javascript 高階函數(shù)前端

2021-03-02 18:35:27

SVG開(kāi)發(fā)空間

2021-02-17 20:40:22

SVG圖像模式

2023-06-21 00:10:17

JSONWeb服務(wù)器JavaScript

2020-11-13 08:14:28

JavaScript

2021-05-29 10:20:54

GoModules語(yǔ)言

2020-12-01 09:36:35

SVG元素屬性

2021-09-15 10:00:33

Go語(yǔ)言Modules

2021-01-07 11:10:47

關(guān)鍵字

2021-03-19 10:01:41

SVG畫(huà)多邊形Htm基礎(chǔ)

2020-12-29 05:31:33

單例模式this關(guān)鍵字

2020-12-28 13:22:47

單例模式關(guān)鍵字

2021-02-24 10:14:04

PythonClassPython基礎(chǔ)

2020-12-16 08:07:28

語(yǔ)言基礎(chǔ)反射

2020-12-10 08:20:27

Python微博評(píng)論

2021-12-30 10:28:30

Python 微博評(píng)論
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)