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

歡迎訪問 生活随笔!

生活随笔

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

java

java读书雷_Java多态学习笔记

發布時間:2024/3/13 java 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java读书雷_Java多态学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

java多態學習筆記

概述

多態的格式與使用

/*

代碼中體現多態性:父類引用指向子類對象。

*/

格式:

父類名稱 對象名 = new 子類名稱();

或者

接口名稱 對象名 = new 實現類名稱();

成員變量的使用特點

1.直接通過對象名訪問成員變量:看等號左邊是誰,優先用誰,沒有則向上找

2.間接通過成員方法訪問成員變量:看該方法屬于誰,優先用誰,沒有則向上找

ps:(永遠不會向下查找)

口訣:編譯看左邊,運行還看左邊。

成員方法的使用特點

/*

在多態的代碼中,成員方法的訪問規則是:

看new的是誰,就優先用誰,沒有則向上找。

口訣:編譯看左邊,運行看右邊。

使用多態的好處

對象的向上轉型

public class DemoTest {

public static void main(String[] args) {

Animal animal = new Cat();

animal.eat();

Cat cat = (Cat)animal;

cat.catchMouse();

}

}

對象的向下轉型

用instanceof關鍵字進行判斷

/*

如何才能知道一個父類引動的對象,本來是什么子類?

格式:

對象 instanceof 類名稱

這將會得到一個boolean值結果,也就是判斷前面的對象能不能當作后面類型的實例。

*/

public class DemoTest {

public static void main(String[] args) {

Animal animal = new Cat();

animal.eat();

giveMePet(animal);

}

public static void giveMePet(Animal animal){

if(animal instanceof Cat){

Cat cat = (Cat)animal;

cat.catchMouse();

}

if(animal instanceof Dog){

Dog dog = (Dog)animal;

dog.catchEnmy();

}

}

}

筆記本電腦

筆記本電腦(laptop) 通常具備使用USB設備的功能。在生產時,筆記本都預留了可以插入USB設備的USB接口,但具體是什么USB設備,筆記本廠商并不關心,只要符合USB規格的設備都可以。

定義USB接口,具備最基本的開啟功能和關閉功能。鼠標和鍵盤要想能在電腦上使用,那么鼠標和鍵盤也必須遵守。USB規范,實現USB接口,否則鼠標和鍵盤的生產出來也無法使用。

案例分析:

進行描述筆記本類,實現筆記本使用USB鼠標、USB鍵盤

USB接口, 包含開啟功能、關閉功能

筆記本類,包含運行功能、關機功能、使用USB設備功能

鼠標類,要實現USB接口,并具備點擊的方法

鍵盤類,要實現USB接口,具備敲擊的方法

定義usb接口:

public interface usb {

void open();//開啟功能

void close();//關閉功能

}

定義鼠標類:

public class Mouse implements usb{

@Override

public void open() {

System.out.println("鼠標開啟");

}

?

public void click(){

System.out.println("鼠標點擊");

}

@Override

public void close() {

System.out.println("關閉鼠標");

}

}

定義鍵盤類:

public class KeyBoard implements usb{

@Override

public void open() {

System.out.println("鍵盤已成功連接");

}

?

public void type(){

System.out.println("coding");

}

@Override

public void close() {

System.out.println("鍵盤斷開連接");

}

?

}

定義筆記本類(usb接口只能定義抽象方法,需要筆記本類來進行向下轉型判斷):

public class Laptop {

public void run() {

System.out.println("筆記本開始運行");

}

?

//筆記本使用usb設備,這時當筆記本調用這個功能時,必須給其傳遞一個符合usb規則得usb設備

public void useUSB(usb usb) {

//判斷是否有usb設備

if (usb != null) {

usb.open();

if (usb instanceof Mouse) {

Mouse m = (Mouse) usb;

m.click();

} else if (usb instanceof KeyBoard) {

KeyBoard k = (KeyBoard) usb;

k.type();

}

usb.close();

}

}

public void shutdown(){

System.out.println("電腦關機!");

}

}

?

測試類:

public class MainTest {

public static void main(String[] args) {

Laptop laptop = new Laptop();

laptop.run();

?

//創建鼠標對象,并使用鼠標

usb u = new Mouse();//使用多態寫法

laptop.useUSB(u);

?

//創建鍵盤對象,并使用鍵盤

KeyBoard keyBoard = new KeyBoard();//直接創建對象

laptop.useUSB(keyBoard);//類似于int->double

//laptop.useUSB(new KeyBoard());//使用匿名類

?

laptop.shutdown();

}

}

運行結果:

總結

以上是生活随笔為你收集整理的java读书雷_Java多态学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

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