面向对象(抽象类)
/**
* Created by rabbit on 2014-07-21. 博客園.liupengcheng
* 當多個類中 出現相同功能。但是功能主體不同。這時可以進行向上
* 抽取,這時,只抽取功能定義,而不抽取功能主體。
*
* 抽象 看不懂
*
* 抽象類的特點
* 1、抽象方法一定定義在抽象類中
* 2、抽象方法和抽象類都必須被abstract 修飾
* 3、抽象類不可以被new 創建對象,因為調用抽象方法沒意義
* 4、抽象類中的方法要被使用,必須由子類復寫其所有的抽象
* 方法后,建議子類對象調用。如果子類只覆蓋了部分抽象方法
* 該子類還是一個抽象類。
*
* 抽象類和一般類沒有太大的不同
* 該如何描述事物,就如何描述事物。只不過該事物中出現了一些
* 看不懂的東西,這些不確定的部分,也是該事物的功能,需要明確
* 出現,但是無法定義主題
*
* 抽象類中比一般類多了個抽象函數,就是在類中可以定義抽象方法
* 抽象類不可以被實例化
*
* 特殊:抽象類中可以不定義抽象方法,這樣做,僅僅是不讓該類建立
* 對象。
*/
* Created by rabbit on 2014-07-21. 博客園.liupengcheng
abstract class student
{
??? public abstract void study();
??? public abstract void sleep();
}
class Basestudent extends student
{
??? public void study()
??? {
??????? System.out.println("Base study");
??? }
??? public void sleep()
??? {
??????? System.out.println("坐著睡");
??? }
??? public void eat()
??? {
??????? System.out.println("坐著吃飯");
??? }
}
class Advstudent extends student
{
??? public void study()
??? {
??????? System.out.println("Adv study");
??? }
??? public void sleep()
??? {
??????? System.out.println("躺著睡");
??? }
}
class Dostudent
{
??? public void doSome(student stu)
??? {
??????? stu.study();
??????? stu.sleep();
??? }
}
* Created by rabbit on 2014-07-21. 博客園.liupengcheng
public class DuoTaiDemo
{
??? public static void main(String [] args)
??? {
??????? Dostudent ds = new Dostudent();
??????? ds.doSome(new Basestudent());
??????? ds.doSome(new Advstudent());
??? }
}
轉載于:https://www.cnblogs.com/liupengcheng/p/3858002.html
《新程序員》:云原生和全面數字化實踐50位技術專家共同創作,文字、視頻、音頻交互閱讀總結
- 上一篇: 从注册流程 分析如何安全退出多个Acti
- 下一篇: 数据同步存储过程