一栈拖、抽象類
1.什么是抽象類:使用abstract定義的類就是抽象類.
注意:抽象類中可以出現(xiàn)抽象方法.
2.定義抽象類
public abstract class Usb {
定義抽象方法
}
注意:a.抽象類中可以出現(xiàn)抽象方法
b.抽象類不能被實例化,只能被繼承使用
c.當(dāng)子類繼承抽象類時坊饶,必需實現(xiàn)抽象方法(重寫)
d.使用抽象類
抽象類 對象名=new 實現(xiàn)繼承抽象類的類();
3.什么是抽象方法:沒有方法體且用abstract定義的方法為抽象方法
示例:
public abstract void method();
二、final關(guān)鍵字(最終)
1.使用final修飾的類為終態(tài)類升薯,不能被繼承
public final class Parent {}
2.使用final修飾的方法為最終方法,不能被重寫
public final void method() {}
3.用final修飾的屬性為常量,必需初始值,不能被修改
public final float pi=3.14f;
上機(jī)練習(xí)一:使用抽象類模擬usb工作原理
1.usb類 抽象方法work
2.Mouse類 實現(xiàn)方法
3.KeyBoard類
4.發(fā)生重寫
三、多態(tài)(多種形態(tài))
1.現(xiàn)實生活中的多態(tài):
同一個事物茵宪,在不同的條件下,產(chǎn)生的結(jié)果不同
2.程序中的多態(tài)
同一個引用類型(父類引用),使用不同的實例(子類對象)而執(zhí)行不同的操作;
父類引用=new 任何子類();
3.實現(xiàn)多態(tài)的思路:
3.1定義父類
3.2定義子類繼承父類瘦棋,重寫父類的方法
3.3發(fā)生多態(tài)
父類引用=new 任何子類();
四稀火、父類與子類間的轉(zhuǎn)換
1.向上轉(zhuǎn)型(自動轉(zhuǎn)):指子類對象向父類轉(zhuǎn)型
Person person=new Student(); //向上轉(zhuǎn)型:方法重寫
2.向下轉(zhuǎn)型(強(qiáng)制轉(zhuǎn)換):將父類強(qiáng)制轉(zhuǎn)化為子類對象
注意:父類引用不能訪問子類的成員(向下轉(zhuǎn)型),重寫方法除外
3.使用instanceof關(guān)鍵字判斷某對象是不是該類的對象
對象 instanceof 類名 //是返回true,反之false
示例:
if(p instanceof Student) {
Student stu=(Student)p;
System.out.println("學(xué)號是:"+stu.getXh());
}