抽象 一、抽象類:不知道是具體什麼東西的類。 abstract class 類名 1.抽象類不能直接new出來。 2.抽象類可以沒有抽象方法。 3.抽象類中,可以有抽象方法,也可以有非抽象方法。抽象類中還可以有成員變數。 4.派生類中,可以不實現某些抽象方法,但派生類必須要聲明為抽象類。 二、抽象方 ...
抽象
一、抽象類:不知道是具體什麼東西的類。 abstract class 類名
1.抽象類不能直接new出來。
2.抽象類可以沒有抽象方法。
public abstract class USB { //抽象類 //兩個抽象方法,抽象類中也可以不寫抽象方法 public abstract void qidong(); public abstract void tingzhi();//抽象方法不用寫{} }
3.抽象類中,可以有抽象方法,也可以有非抽象方法。抽象類中還可以有成員變數。
4.派生類中,可以不實現某些抽象方法,但派生類必須要聲明為抽象類。
public abstract class Shubiao extends USB{ public void qidong(){ System.out.println("滑鼠運行"); } //父類的tingzhi()的方法沒重寫 ,子類也要改成abstract抽象的。 }
二、抽象方法:不知道具體是乾什麼事情的方法。abstract 返回類型 函數名(形參);
1.抽象方法沒有函數體。
2.有抽象方法的類必須是抽象類。
遇到抽象類,兩種用法:
1.找找有沒有它的派生類,用它的派生類。
2.自己寫一個類,派生自這個抽象類。
package com.itnba.may.Demo1229; public abstract class USB { //抽象類 //兩個抽象方法 public abstract void qidong(); public abstract void tingzhi(); }
介面
可以理解為一種特殊的抽象類。裡面只有常量和抽象方法(不需要寫abstract)。
介面可以多實現(繼承),抽象類只能是單位繼承。
定義:
interface 介面名 [extends 父介面列表]{
final 類型 常量名=值;
public void 方法名(形參);
}
public interface USB { //定義一個介面 public void qidong(); public void tingzhi(); }
介面的實現:
[abstract] class 類名 extends 父類 implements 介面名,介面名,....{
}
public class Shubiao implements USB{ @Override public void qidong(){ System.out.println("滑鼠運行"); } @Override public void tingzhi() { System.out.println("滑鼠拔出了"); } //如果有介面的方法沒重寫 ,類要改成abstract抽象的。 }
介面定義的時候:
1.介面儘量的小,功能太複雜的。——介面分離原則。
2.介面定義的時候,介面名子,儘量是形容詞,或者是描述性質的詞。
final 的幾種修飾用法
final可以修飾成員變數,成員方法,類。
1.final修飾類:此類不能被繼承。
2.final修飾成員變數:可以當常量來用。
3.final修飾方法:不能被子類的方法覆蓋(重寫),但可以被繼承。