日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java从入门到入土图_Java从入门到入土day08

發布時間:2024/3/26 java 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java从入门到入土图_Java从入门到入土day08 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

好家伙,這個作者竟然妄圖一天就把面向對象的兩個特征說了。他可真是自不量力啊,作者心中OS:學習真累,趕快寫完去打游戲真香。

正文分割線

一、抽象

1、抽象的定義:抽象,字面意思。很抽象,很多人都不懂的東西就叫抽象。那么放在Java中是什么樣的體現呢?百度百科的答案是:抽象是從眾多的事物中抽取出共同的、本質性的特征,而舍棄其非本質的特征的過程。具體地說,抽象就是人們在實踐的基礎上,對于豐富的感性材料通過去粗取精、去偽存真、由此及彼、由表及里的加工制作,形成概念、判斷、推理等思維形式,以反映事物的本質和規律的方法。

2、Java中抽象的體現:

抽象類:抽象方法必須寫在抽象類中,抽象類中可以有除了抽象方法以外的方法。抽象方法意味著在本類中我自己這個類不實現這個方法,這個方法需要通過子類幫我實現。就像你的老板,他只是給你提供了一個解決問題的思路,但是具體流程怎么落地,還是得看你自己怎么做。

接口:接口的話后面會說,現在說了就不能多水一個文章了。

3、抽象類的關鍵字:

abstract:抽象類定義時,abstract寫在class前面。抽象方法定義時,abstract寫在返回值定義之前。一個方法定義為抽象類之后,他就可以不用寫{},而是應該直接分號結尾來結束這個語句。

二、多態

1、多態的定義:同樣的方法,不同的實現就是Java中的多態。

2、靜態多態

重載:相同的類中,允許寫多個方法名一樣的方法。

3、動態多態

重寫:子類重新實現父類的方法,前提是要和父類中的方法一樣。重寫父類的方法時,不能比父類的方法范圍大,假如父類使用protect修飾,那么子類不能用public。而且返回值也得一樣。前兩個點的原理是子類不能比父類拋出更多的異常,而修改這些東西有可能會造成比父類造成更多的異常。

動態綁定:根據傳入方法的對象不同,來執行不同的方法。在說具體一點:當子類重寫父類的方法時,這時候就存在了兩個相同名字,相同類型的方法。那么在程序加載中的時候,程序應該調用哪個呢?這個時候就會根據你傳入的對象是子類還是父類進行選擇。假如傳入是子類就會執行子類的方法。

類型轉換:符合繼承關系的兩個類,支持子類自動向上轉型為父類,但是父類向下轉型的話還是要強制轉換,使用()。

代碼舉例

package UnAble;

/*** 用于演示抽象和多態的類* @author 84980**/

public class Test {

public static void main(String[] args) {

//通過實現類的實例化來賦值給抽象類,因為抽象類是不能實例化的fatherAb fab=new child();

//調用抽象類自身實現的方法fab.ill();

//調用抽象子類的實現方法fab.hello();

//實例化父類Father f=new Father();

//調用父類中的方法human(f);

//實例化子類ChildBen c=new ChildBen();

//正常調用子類中的方法human(c);

//創建一個父類的對象,但是把子類賦值給它,子類會自動轉換為父類Father cff=new ChildBen();

//雖然cff定義是父類對象,但實際上他是由子類傳入,所以調用下面的測試方法還是會輸出子類的方法,這就是動態綁定human(cff);

//父類對象強制轉換為子類對象,為了避免強制轉型帶來的風險,我們需要使用instanceof來判斷這個對象是否是子類if (cff instanceof ChildBen) {

ChildBen cf = (ChildBen) cff;

human(cf);

}

}

/*** 測試動態多態的方法*/

public static void human(Father f) {

f.walk();

}

}

//因為定義了抽象方法,所以該類就必須設置為抽象類abstract class fatherAb{

//定義一個抽象方法public abstract void hello();

//抽象類中的非抽象方法public void ill() {

System.out.println("我是抽象類中的非抽象方法");

}

}

class child extends fatherAb{

@Override

public void hello() {

// TODO 自動生成的方法存根System.out.println("我是實現父類抽象方法的子類");

}

}

class Father{

public void walk() {

System.out.println("我是爸爸,我會走路");

}

}

class ChildBen extends Father{

public void walk() {

System.out.println("我是兒子,我也會走路");

}

}

總結

以上是生活随笔為你收集整理的java从入门到入土图_Java从入门到入土day08的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。