Java是一種可以撰寫跨平臺應(yīng)用軟件的面向?qū)ο蟮某绦蛟O(shè)計語言衡奥。Java 技術(shù)具有卓越的通用性、高效性肴掷、平臺移植性和安全性,廣泛應(yīng)用于PC、數(shù)據(jù)中心揭朝、游戲控制臺、科學(xué)超級計算機(jī)色冀、移動電話和互聯(lián)網(wǎng)潭袱,同時擁有全球最大的開發(fā)者專業(yè)社群。
給你學(xué)習(xí)路線:html-css-js-jq-javase-數(shù)據(jù)庫-jsp-servlet-Struts2-hibernate-mybatis-spring4-springmvc-ssh-ssm
小編推薦一個學(xué)Java的學(xué)習(xí)裙【 六五零锋恬,五五四屯换,六零七 】,無論你是大牛還是小白与学,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)彤悔!裙內(nèi)有開發(fā)工具,很多干貨和技術(shù)資料分享索守!
1:final關(guān)鍵字(掌握)
(1)定義:是最終的意思晕窑,可以修飾類,方法卵佛,變量杨赤。
(2)特點:
A:它修飾的類,不能被繼承截汪。
B:它修飾的方法疾牲,不能被重寫。
C:它修飾的變量衙解,是一個常量阳柔。
(3)面試相關(guān):
A:局部變量
a:基本類型:?值不能發(fā)生改變
b:引用類型:地址值不能發(fā)生改變,但是對象的內(nèi)容是可以改變的
B:初始化時機(jī)
a:只能初始化一次蚓峦。
b:常見的給值
定義的時候舌剂。(推薦)
構(gòu)造方法中。
2:多態(tài)(掌握)
(1)定義:同一個對象在不同時刻體現(xiàn)出來的不同狀態(tài)暑椰。
(2)多態(tài)的前提:
A:有繼承或者實現(xiàn)關(guān)系霍转。
B:有方法重寫。
C:有父類或者父接口引用指向子類對象干茉。
多態(tài)的分類:
a:具體類多態(tài)
class Fu {}
class Zi extends Fu {}
Fu f = new Zi();
b:抽象類多態(tài)
abstract class Fu {}
class Zi extends Fu {}
Fu f = new Zi();
c:接口多態(tài)
interface Fu {}
class Zi implements Fu {}
Fu f = new Zi();
(3)多態(tài)中的成員訪問特點
A:成員變量
編譯看左邊谴忧,運(yùn)行看左邊
B:構(gòu)造方法
子類的構(gòu)造都會默認(rèn)訪問父類構(gòu)造
C:成員方法
編譯看左邊,運(yùn)行看右邊
D:靜態(tài)方法
編譯看左邊,運(yùn)行看左邊
為什么?
因為成員方法有重寫沾谓。
(4)多態(tài)的好處:
A:提高代碼的維護(hù)性(繼承體現(xiàn))
B:提高代碼的擴(kuò)展性(多態(tài)體現(xiàn))
(5)多態(tài)的弊端:
父不能使用子的特有功能委造。
現(xiàn)象:
子可以當(dāng)作父使用,父不能當(dāng)作子使用均驶。
(6)多態(tài)中的轉(zhuǎn)型
A:向上轉(zhuǎn)型
從子到父
B:向下轉(zhuǎn)型
從父到子
繼承的內(nèi)存圖解
(7)多態(tài)的練習(xí)
A:貓狗案例
B:老師和學(xué)生案例
小編推薦一個學(xué)Java的學(xué)習(xí)裙【 六五零昏兆,五五四,六零七 】妇穴,無論你是大牛還是小白爬虱,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)!裙內(nèi)有開發(fā)工具腾它,很多干貨和技術(shù)資料分享跑筝!
類,接口瞒滴,抽象類的區(qū)別
3:抽象類(掌握)
(1)理解:把多個共性的東西提取到一個類中曲梗,這是繼承的做法。
但是呢妓忍,這多個共性的東西虏两,在有些時候,方法聲明一樣世剖,但是方法體定罢。
也就是說,方法聲明一樣旁瘫,但是每個具體的對象在具體實現(xiàn)的時候內(nèi)容不一樣祖凫。
所以,我們在定義這些共性的方法的時候境蜕,就不能給出具體的方法體蝙场。
而一個沒有具體的方法體的方法是抽象的方法凌停。
在一個類中如果有抽象方法粱年,該類必須定義為抽象類。
(2)抽象類的特點
A:抽象類和抽象方法必須用關(guān)鍵字abstract修飾
B:抽象類中不一定有抽象方法,但是有抽象方法的類一定是抽象類
C:抽象類不能實例化
D:抽象類的子類
a:是一個抽象類罚拟。
b:是一個具體類台诗。這個類必須重寫抽象類中的所有抽象方法。
(3)抽象類的成員特點:
A:成員變量
有變量赐俗,有常量
B:構(gòu)造方法
有構(gòu)造方法
C:成員方法
有抽象拉队,有非抽象
(4)抽象類的練習(xí)
A:貓狗案例練習(xí)
B:老師案例練習(xí)
C:學(xué)生案例練習(xí)
D:員工案例練習(xí)
(5)抽象類的幾個小問題
A:抽象類有構(gòu)造方法,不能實例化阻逮,那么構(gòu)造方法有什么用?
用于子類訪問父類數(shù)據(jù)的初始化
B:一個類如果沒有抽象方法,卻定義為了抽象類粱快,有什么用?
為了不讓創(chuàng)建對象
C:abstract不能和哪些關(guān)鍵字共存
a:final 沖突
b:private 沖突
c:static 無意義
4:接口(掌握)
(1)回顧貓狗案例,它們僅僅提供一些基本功能。
比如:貓鉆火圈事哭,狗跳高等功能漫雷,不是動物本身就具備的,
是在后面的培養(yǎng)中訓(xùn)練出來的鳍咱,這種額外的功能降盹,java提供了接口表示。
(2)接口的特點:
A:接口用關(guān)鍵字interface修飾
interface 接口名 {}
B:類實現(xiàn)接口用implements修飾
class 類名 implements 接口名 {}
C:接口不能實例化
D:接口的實現(xiàn)類
a:是一個抽象類谤辜。
b:是一個具體類蓄坏,這個類必須重寫接口中的所有抽象方法。
(3)接口的成員特點:
A:成員變量
只能是常量
默認(rèn)修飾符:public static final
B:構(gòu)造方法
沒有構(gòu)造方法
C:成員方法
只能是抽象的
默認(rèn)修飾符:public abstract
(4)類與類,類與接口,接口與接口
A:類與類
繼承關(guān)系丑念,只能單繼承涡戳,可以多層繼承
B:類與接口
實現(xiàn)關(guān)系,可以單實現(xiàn)脯倚,也可以多實現(xiàn)妹蔽。
還可以在繼承一個類的同時,實現(xiàn)多個接口
C:接口與接口
繼承關(guān)系挠将,可以單繼承胳岂,也可以多繼承
(5)抽象類和接口的區(qū)別?
A:成員區(qū)別
抽象類:有變量,有常量
接口:只能是常量舔稀, 默認(rèn)修飾符:public static final
B:設(shè)計理念不同
抽象類:is a乳丰,抽象類中定義的是共性功能。
接口:like a内贮,接口中定義的是擴(kuò)展功能产园。
小編推薦一個學(xué)Java的學(xué)習(xí)裙【 六五零,五五四夜郁,六零七 】什燕,無論你是大牛還是小白,是想轉(zhuǎn)行還是想入行都可以來了解一起進(jìn)步一起學(xué)習(xí)竞端!裙內(nèi)有開發(fā)工具屎即,很多干貨和技術(shù)資料分享!
貓狗練習(xí)
(6)練習(xí):
A:貓狗案例事富,加入跳高功能
B:老師和學(xué)生案例技俐,加入抽煙功能0