java编程思想学习(1):抽象
今天開(kāi)始java編程思想的導(dǎo)讀,希望自己能更好的理解程序。全書(shū)1461頁(yè),恐怖,盡量一天看十頁(yè)八。
OOP 面向?qū)ο蟪绦蛟O(shè)計(jì)
記錄一點(diǎn)東西八
第一個(gè)小課程,抽象過(guò)程
看看概念
1萬(wàn)物皆為對(duì)象
2程序是對(duì)象的集合,他們通過(guò)發(fā)送信息告知彼此所要做的
3每個(gè)對(duì)象都有自己的由其他對(duì)象構(gòu)成的存儲(chǔ)
4每個(gè)對(duì)象都擁有此類(lèi)型
5某一特定類(lèi)型的對(duì)象可以接受同樣的消息
話不多說(shuō),我們寫(xiě)一個(gè)簡(jiǎn)單的小例子八,打開(kāi)我的eclipse程序,我們講講抽象類(lèi)八,
可能也是抽象的一個(gè)代表了
一、概述
當(dāng)父類(lèi)知道子類(lèi)應(yīng)該包含什么樣的方法,但無(wú)法確定子類(lèi)如何實(shí)現(xiàn)這些方法;在分析事物時(shí),會(huì)發(fā)現(xiàn)事物的共性,將共性抽取出,實(shí)現(xiàn)的時(shí)候,就會(huì)有這樣的情況:方法功能聲明相同,但方法功能主體不同,這時(shí),將方法聲明抽取出,那么,此方法就是一個(gè)抽象方法。
1、抽象的定義格式
??? 抽象方法的定義格式:public abstract 返回值類(lèi)型 方法名(參數(shù));
??? 抽象類(lèi)的定義格式:abstract class 類(lèi)名{}
2、抽象的特點(diǎn)
??? 抽象類(lèi)和抽象方法都需要被 abstract 修飾,抽象方法一定要定義在抽象類(lèi)中
??? 抽象不能直接創(chuàng)建對(duì)象,因?yàn)檎{(diào)用抽象方法沒(méi)有意義
??? 只有覆蓋了抽象類(lèi)中所有的抽象方法后,其子類(lèi)才可以創(chuàng)建對(duì)象,否則該子類(lèi)還是一個(gè)抽象類(lèi)
??? 之所以繼承抽象類(lèi),更多的是在思想,是面對(duì)共性類(lèi)型操作會(huì)更簡(jiǎn)單
3、抽象類(lèi)的注意事項(xiàng)
??? 抽象類(lèi)一定是個(gè)父類(lèi),因?yàn)槭遣粩喑槿《鴣?lái)的
??? 抽象類(lèi)中可以不定義抽象方法,其存在的意義就是不讓該類(lèi)創(chuàng)建對(duì)象,方法可以直接讓子類(lèi)去使用
??? 抽象關(guān)鍵字 abstract 不可以和以下關(guān)鍵字共存:
??? private:私有的方法子類(lèi)是無(wú)法繼承到的,也不存在覆蓋,如果 abstract 和 private 一起使用修飾方法, abstract 既要子類(lèi)去實(shí)現(xiàn)這個(gè)方法,而 private 修飾子類(lèi)根本無(wú)法得到父類(lèi)這個(gè)方法,互相矛盾
??? final:final 修飾的類(lèi)不能被繼承,而抽象類(lèi)一定是父類(lèi)
??? static:static 修飾的表示靜態(tài)的,不能被修改的,但可以直接被類(lèi)所調(diào)用,而abstract修飾的是抽象的,即沒(méi)有方法實(shí)體,也不能直接被調(diào)用
首先我們定義一個(gè)Animal的抽象類(lèi)
定義一個(gè)豬類(lèi)繼承這個(gè)方法
package geyao01;public class Pig extends Animal{public void run() {System.out.println("我可以奔跑");} }定義一個(gè)豬的測(cè)試類(lèi)
package geyao01;public class PigTest {public static void main(String[] args) {//創(chuàng)建一個(gè)小豬的對(duì)象Pig pig=new Pig();//執(zhí)行小豬的方法pig.run();} }運(yùn)行結(jié)果
我可以奔跑實(shí)例解析
- 將共性“動(dòng)物”抽取出來(lái)形成一個(gè)Develop類(lèi)并定義方法:豬
- 抽象類(lèi)不能實(shí)例化,即不能 new 抽象方法沒(méi)有主體
- 可以定義類(lèi)來(lái)繼承抽象類(lèi),將抽象類(lèi)進(jìn)行重寫(xiě),然后創(chuàng)建子類(lèi)的對(duì)象
- 重寫(xiě)父類(lèi)的抽象方法時(shí),去掉abstract關(guān)鍵字,加上方法主體
總結(jié)
以上是生活随笔為你收集整理的java编程思想学习(1):抽象的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 前端学习(476):web前端行业介绍
- 下一篇: 编程新手导论