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

一篇文章帶你了解Java繼承那些事兒

開發(fā) 后端
本文主要介紹了繼承、繼承需要注意的問題。繼承是當(dāng)一個(gè)類A能夠得到另一個(gè)類B中所有非私有的數(shù)據(jù)和操作的定義作為自己的部分或全部成分時(shí),我們就叫做這兩個(gè)類之間具有繼承關(guān)系。

[[358881]]

一、繼承的概念

1.什么是繼承

在現(xiàn)實(shí)生活中,繼承指的是子女繼承父輩的財(cái)產(chǎn)。在程序中,當(dāng)一個(gè)類A能夠得到另一個(gè)類B中所有非私有的數(shù)據(jù)和操作的定義作為自己的部分或全部成分時(shí),我們就叫做這兩個(gè)類之間具有繼承關(guān)系。

2.例如貓、狗、兔、豬都屬于動(dòng)物,在程序中貓、狗、兔、豬都繼承動(dòng)物。波斯貓和英國(guó)短毛貓繼承貓,這些動(dòng)物會(huì)形成一個(gè)繼承體系。在程序中繼承在現(xiàn)有的類基礎(chǔ)上創(chuàng)建一個(gè)新的類,創(chuàng)建一個(gè)新的類叫做子類,現(xiàn)有類叫做父類或超類,子類會(huì)擁有父類所有可繼承的屬性和方法。

3.繼承的實(shí)現(xiàn)

① 確定父類。

② 定義子類。

  1. [類修飾符]  class 子類名 extends 父類名 

子類能夠繼承父類所有非私有的屬性和方法。

③ 實(shí)現(xiàn)子類的功能。

4.類是如何繼承父類案例一

  1. //定義Fruit水果類 
  2. class Fruit{ 
  3.     public double weight;//重量屬性 
  4.     //info()方法 
  5.     public void info(){ 
  6.             System.out.println("我是一個(gè)水果,重量為" + weight + "g!"); 
  7.     } 
  8. public class Apple extends Fruit{ 
  9.     public static void main(String[] args){ 
  10.             Apple a = new Apple();//創(chuàng)建對(duì)象 
  11.             a.weight = 87;//給weight屬性賦值 
  12.             a.info();//調(diào)用info方法 
  13.     } 

輸出的結(jié)果是:

  1. 我是一個(gè)水果,重量為87.0g! 

從上面代碼中,我們可以看出定義了一個(gè)Fruit類,在Fruit類中定義了weight屬性和info方法。Apple類繼承Fruit類,創(chuàng)建對(duì)象實(shí)例化,然后給weight屬性賦值,調(diào)用info方法。

5.類是如何繼承父類案例二

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

輸出的結(jié)果是:

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

在上面代碼中,首先是定義了一個(gè)Animal類,Cat類使用extends繼承Animal類.,使得Cat類是Animal類的子類,Animal作為一個(gè)父類。我們便發(fā)現(xiàn)在子類并沒有定義name、age屬性和shout()方法,可以訪問到它們非私有屬性和方法。說明了子類是可以擁有父類的所有非私有的屬性和方法。

二、繼承需要注意的問題

1.單重繼承是指任何一個(gè)類都只有一個(gè)單一的父類。

例如:

  1. class A1{ 
  2.     void show(){ 
  3.     System.out.println("A1"); 
  4.     } 
  5. class A2{ 
  6.     void show(){ 
  7.     System.out.println("A1"); 
  8. class B extends A1,A2{ 
  9.     public void show(){ 
  10.     System.out.println("bbb"); 
  11.     }  

在上面代碼中是不合法的,任何一個(gè)類只有支持單繼承,不可以多重繼承。也是就B類是不可以同時(shí)繼承A1和A2。如果B b=new B(),那么b.show()是調(diào)用哪個(gè)一個(gè)父類方法呢?無(wú)法給出答案,所以是不能多重繼承。

2.多重繼承是指一個(gè)類可以有一個(gè)以上的父類,它的靜態(tài)的數(shù)據(jù)屬性和操作從所有這些父類中繼承。

3.多個(gè)類可以繼承一個(gè)父類。

例如:

  1. class A{} 
  2. class B extends A{} 
  3. class C extends A{} 

在上面代碼中是合法的,B類和C類都可以繼承A類的所有非私有屬性和方法。

4.一個(gè)類的父類可以去繼承另外的父類,這就是多層繼承。

例如:

  1. class A{} 
  2. class B extends A{} 
  3. class C extends B{} 

在上面代碼中,實(shí)現(xiàn)了多層繼承B類繼承A類,B類是A類的子類,C類繼承B類,C類是B類的子類,C類也是A類的子類。在一個(gè)類是某個(gè)類父類的同時(shí),也是另一個(gè)類的父類。例如B類是A類的子類,也是C類的父類。

三、總結(jié)

本文主要介紹了繼承、繼承需要注意的問題。繼承是當(dāng)一個(gè)類A能夠得到另一個(gè)類B中所有非私有的數(shù)據(jù)和操作的定義作為自己的部分或全部成分時(shí),我們就叫做這兩個(gè)類之間具有繼承關(guān)系。

本文介紹了繼承的實(shí)現(xiàn)方法,通過兩個(gè)案例幫助理解繼承的用法。繼承是只支持單繼承,不支持多重繼承。多個(gè)類可以繼承一個(gè)父類。一個(gè)類的父類是可以繼承另外的父類。希望大家通過本文的學(xué)習(xí),對(duì)你有所幫助!

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

 

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

2023-05-12 08:19:12

Netty程序框架

2021-06-30 00:20:12

Hangfire.NET平臺(tái)

2023-05-08 08:21:15

JavaNIO編程

2020-11-10 10:48:10

JavaScript屬性對(duì)象

2021-01-29 18:41:16

JavaScript函數(shù)語(yǔ)法

2021-02-02 18:39:05

JavaScript

2021-06-04 09:56:01

JavaScript 前端switch

2023-07-30 15:18:54

JavaScript屬性

2020-12-08 08:09:49

SVG圖標(biāo)Web

2021-01-26 23:46:32

JavaScript數(shù)據(jù)結(jié)構(gòu)前端

2021-03-09 14:04:01

JavaScriptCookie數(shù)據(jù)

2021-06-24 09:05:08

JavaScript日期前端

2021-09-27 09:18:30

ListIterato接口方法

2023-09-06 14:57:46

JavaScript編程語(yǔ)言

2024-01-30 13:47:45

2024-04-19 14:23:52

SwitchJavaScript開發(fā)

2021-03-05 18:04:15

JavaScript循環(huán)代碼

2021-05-18 08:30:42

JavaScript 前端JavaScript時(shí)

2021-02-26 20:01:57

SVG濾鏡元素

2021-03-24 10:00:32

Python遞歸函數(shù)Python基礎(chǔ)
點(diǎn)贊
收藏

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