久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Java繼承的基本概念及其限制 總結(jié)

 Mis林桑 2017-03-27

一,、 繼承的基本概念及其限制

繼承:就是擴展已有類的功能,在繼承中分為子類和父類,,父類有時候也稱為超類(super class,子類有時候稱為派生類,。

 繼承的基本語法為:class子類 extends 父類 {}

繼承的限制:1)在java中不允許多重繼承,一個子類只能繼承一個父類,,不能繼承多個父類,;2java中允許多層繼承;3)在繼承中子類不能訪問父類中的私有成員,,只能繼承公共操作,。但是私有成員可以通過公共方法得到訪問。

二,、  this關(guān)鍵字和super關(guān)鍵字的區(qū)別

thisjava中變現(xiàn)出以下的概念:

1  調(diào)用類中的屬性:this.屬性

2  調(diào)用類中的方法:this.方法()

3  調(diào)用類中的構(gòu)造方法:this()

4  表示當(dāng)前對象:this

所有的構(gòu)造方法應(yīng)該是在對象操作之前最早調(diào)用的,,所以用this調(diào)用類中其他構(gòu)造方法的時候,該代碼必須放在構(gòu)造方法中的首行,。需要注意:在使用this調(diào)用構(gòu)造方法的時候必須至少有一個構(gòu)造方法沒有使用this()調(diào)用的,,而此方法將作為程序的出口,一般情況下這個出口定義為無參構(gòu)造方法,。

 

No

比較點

this

super

1

屬性

this.屬性表示的是本類中的屬性,,如果在子類中查找不到則到父類中繼續(xù)查找

Super.屬性表示直接查找的父類的屬性

2

方法

This.方法()是調(diào)用本類中的方法,如果在子類中找不到則到父類中查找

Super.方法()表示直接查找父類的方法

3

構(gòu)造方法

可以調(diào)用本類中的其他構(gòu)造方法,但是必須有一個構(gòu)造方法不使用this()調(diào)用

從子類調(diào)用父類的構(gòu)造方法,,子類不管怎么編碼,,必須調(diào)用父類的構(gòu)造方法

調(diào)用構(gòu)造時,必須放在構(gòu)造方法首行

必須放在子類構(gòu)造方法首行

4

特殊點

表示當(dāng)前對象

無此概念

No

比較點

重載

覆寫

1

英文單詞

overload

Override

2

概念

方法名稱相同,,參數(shù)不同(參數(shù)或個數(shù))

方法名稱,、參數(shù)、返回值都完全相同

3

注意點

-

訪問權(quán)限不能變小

4

范圍

在同一個類中發(fā)生

在繼承類中發(fā)生

No

比較點

抽象類

接口

1

組成

抽象方法,、普通方法,、常量、變量,、構(gòu)造方法,、全局常量

抽象方法、全局常量

2

定義

Abstract

Interface

3

子類

子類通過extends關(guān)鍵字來繼承抽象方法

子類通過implements來實現(xiàn)接口

4

限制

一個子類只能繼承一個抽象類

一個子類可以實現(xiàn)多個接口

5

關(guān)系

一個抽象類可以實現(xiàn)多個接口

一個接口不能繼承一個抽象類只能實現(xiàn)多個接口

一個抽象類中可以由多個接口

一個接口中也可以由多個抽象類

6

設(shè)計模式

模板模式

工廠模式,、代理模式

兩個結(jié)合起來可以實現(xiàn)適配器模式

7

實例化

都是通過對象多態(tài)性,,通過子類進(jìn)行對象的實例化操作

8

實現(xiàn)限制

存在單繼承限制

不存在此限制

9

特性

-

可以作為標(biāo)準(zhǔn)、一種能力

三,、 重載和覆寫的區(qū)別

四,、子類的初始化過程

子類在實例化的時候,首先調(diào)用的永遠(yuǎn)都是父類的構(gòu)造方法,。構(gòu)造方法的作用是為類的屬性進(jìn)行初始化,。在實例化子類之前,先將父類實例化,。在實際的代碼中,,如果子類的構(gòu)造方法中沒有顯示的調(diào)用父類的構(gòu)造方法,會默認(rèn)的添加上super()方法用來調(diào)用父類的無參構(gòu)造方法,。如果此時父類中沒有無參的構(gòu)造方法,,程序編譯將出現(xiàn)錯誤。這時,,要么顯示的為子類構(gòu)造函數(shù)中添加super(參數(shù))來調(diào)用父類中帶參數(shù)的構(gòu)造方法,,或者為父類添加無參的構(gòu)造方法。

五,、 一個開發(fā)原則

在程序開發(fā)中要記住一個原則:一個類不要去繼承一個已經(jīng)實現(xiàn)好的類,,要么去繼承抽象類,要么去實現(xiàn)接口,。

六,、 一個重要題目

現(xiàn)在要求定義一個數(shù)組類(Array,該類中包含一個整型數(shù)組,但是該整型數(shù)組的大小事動態(tài)分配的,。即:所有的大小由程序決定,,并且實現(xiàn)下面兩個子類:

u  反轉(zhuǎn)類:可以將數(shù)組的內(nèi)容反轉(zhuǎn)排列

u  排序類:可以對數(shù)組進(jìn)行排序的操作

 

class Array{ private int[] temp = null ; // 聲明一個整型數(shù)組 private int foot ; // 定義增加記錄的腳標(biāo) public Array(int len){ if(len>0){ this.temp = new int[len] ; // 如果傳過來的數(shù)據(jù)大于0,,可以開辟 }else{ this.temp = new int[1] ; // 最少維持1個數(shù)組大小 } } public boolean add(int t){ // 增加元素 if(this.foot
class SortArray extends Array{ // 排序類 public SortArray(int len){ // 在子類的構(gòu)造方法中必須明確的調(diào)用父類的構(gòu)造方法 super(len) ; } public int[] getArray(){ java.util.Arrays.sort(super.getArray()) ; // 排序 return super.getArray() ; // 返回排序后的結(jié)果 }};public class ExecDemo01{ public static void main(String args[]){ SortArray arr = new SortArray(5) ; // 開辟5個大小的整型數(shù)組 System.out.println(arr.add(11)) ; System.out.println(arr.add(2)) ; System.out.println(arr.add(33)) ; System.out.println(arr.add(4)) ; System.out.println(arr.add(0)) ; System.out.println(arr.add(6)) ; print(arr.getArray()) ; } public static void print(int temp[]){ // 打印數(shù)組 for(int x:temp){ System.out.print(x + ',、') ; } }};

class ReverseArray extends Array{ // 排序類 public ReverseArray(int len){ // 在子類的構(gòu)造方法中必須明確的調(diào)用父類的構(gòu)造方法 super(len) ; } public int[] getArray(){ int x[] = new int[super.getArray().length] ; // 以父類中的數(shù)組大小進(jìn)行開辟 int count = x.length - 1 ; for(int i=0;i

在本道程序中融合了以下的知識點:

                   1,、   繼承的基本概念:擴充了類的功能

                   2,、   方法的覆寫的作用

                   3、   引用傳遞

                   4,、   數(shù)組的排序,、foreach輸出


七、  final關(guān)鍵字(重點)

final關(guān)鍵字可以用來做以下聲明:

1  聲明類:由final聲明的類不能有子類,;

2  聲明方法:由final聲明的方法不能被子類覆寫,;

3  聲明變量:由final聲明的變量就成為常量,常量的內(nèi)容不能改變

java中用final聲明的變量為常量,,這個常量的標(biāo)示符一般全部用大寫字母表示,。

java中也存在一個很重要的概念:全局變量,用public static final來聲明,。

八,、 抽象類和接口的基本概念和應(yīng)用

1、抽象類:包含一個抽象方法的類為抽象方法,,抽象方法是只聲明而沒有實現(xiàn)的方法,,所有的抽象方法必須用abstract關(guān)鍵字聲明,所有的抽象類也必須用abstract關(guān)鍵字聲明,。

對抽象類來講,,抽象類是不能直接實例化的,但是可以聲明,,如果要想使用抽象類,,則必須依靠其子類,抽象類是必須要被子類繼承的,,繼承抽象類的子類要實現(xiàn)抽象類中的所有抽象方法,。

  抽象類是不能用final關(guān)鍵字來聲明的,因為抽象類必須被子類繼承,,而final聲明的類不能有子類,;

  抽象類是可以有構(gòu)造方法的,但是這個構(gòu)造方法不能直接調(diào)用,,是交給子類去調(diào)用的,,實際上子類的實例化過程,永遠(yuǎn)是先調(diào)用父類的構(gòu)造方法,。而且,,抽象類中的屬性如果想初始化,,則必須依賴其構(gòu)造方法。

2.接口:接口是一個特殊的類,,在java中接口是由抽象方法和全局變量組成的,,用interface定義一個接口,子類通過implements來實現(xiàn)一個接口,。

一個類雖然只能繼承一個父類,,但是可以同時實現(xiàn)多個接口。

3,、對象多態(tài)性

   多態(tài)性是整個java中最重要的一個概念,,因為有多態(tài)性的存在,程序的靈活性才能實現(xiàn),。多態(tài)性是面向?qū)ο蟮淖詈笠粋€特征:

1  方法重載和方法覆寫其實就是多態(tài)性的一種體現(xiàn),;

2  真正的多態(tài)性包括一種叫做對象多態(tài)性的概念:

|-對象的多態(tài)性主要是指,子類和父類的對象之間的相互轉(zhuǎn)化,;

   |-向上轉(zhuǎn)型:父類父類對象 =子類實例   à自動完成

   |-向下轉(zhuǎn)型:子類子類對象 =(子類)父類對象 à強制完成

        Java提供了instanceof方法來判斷一個對象是否屬于一個類

          對象 instanceof à返回boolean類型的結(jié)果值,,true或者false.

  為了保證對象的向下轉(zhuǎn)型的操作能夠成功,最好在轉(zhuǎn)型之前使用instanceof來判斷一下是否屬于該類,;

  在繼承關(guān)系中,,父類的設(shè)計是很重要的,如果父類設(shè)計的比較好,,代碼編輯起來會很方便,。

抽象類最大的用處就是模板設(shè)計。

九,、             抽象類和接口的區(qū)別(絕對重點)

10,、 object

      toString():在對象打印時調(diào)用,;

      ,。equals():完成對象的比較工作。

 

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多