真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java中抽象公用代碼 java抽象類使用方法

Java中 為什么說抽象類是代碼重構(gòu)的結(jié)果?

首先軟件開發(fā)中最難以預(yù)料的莫過于應(yīng)對需求不斷發(fā)生的變化.

望江網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,望江網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為望江上1000家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站建設(shè)公司要多少錢,請找那個售后服務(wù)好的望江做網(wǎng)站的公司定做!

在程序開發(fā)中為了盡可能的減小(不可能避免)變化對總體的影響,一種設(shè)計思想便是在一個繼承關(guān)系的樹形的等級結(jié)構(gòu)中,樹葉節(jié)點(diǎn)應(yīng)當(dāng)是具體類.而樹枝節(jié)點(diǎn)應(yīng)當(dāng)是抽象類(或java接口).

抽象類是用來被繼承的類,只要有可能就不應(yīng)從具體類繼承,在一個從抽象類到多個具體類的繼承關(guān)系中,共同的代碼(公用方法)應(yīng)當(dāng)盡量的移到抽象類里.這樣提供代碼的復(fù)用率.

因此,在編程時,應(yīng)該當(dāng)針對抽象類編程,而不應(yīng)當(dāng)針對具體類編程,因此,在一個合理的編程過程中,抽象類是代碼重構(gòu)的結(jié)果,而非具體類.

java程序,抽象類實(shí)現(xiàn),求具體代碼

package test;

/**

*

* @author JinnL

*父類抽象類

*/

public abstract class Car {

//轉(zhuǎn)彎

abstract void turn();

//啟動

abstract void start();

void what(){

System.out.println("this is "+this.getClass().getSimpleName());

}

public static void main(String[] args) {

/**

* 方法入口

*/

Car[] cars ={new Bicycle(),new Automobile(),new GasAutomobile(),new DieselAutomobile()};

for (Car car : cars) {

car.start();

}

}

}

class Bicycle extends Car{

@Override

void turn() {

System.out.println("this is "+this.getClass().getSimpleName());

}

@Override

void start() {

System.out.println("this is "+this.getClass().getSimpleName());

}

void what(){

}

}

class Automobile extends Car{

@Override

void turn() {

System.out.println("this is "+this.getClass().getSimpleName());

}

@Override

void start() {

System.out.println("this is "+this.getClass().getSimpleName());

}

}

class GasAutomobile extends Automobile{

//重寫start turn

@Override

void turn() {

System.out.println("this is "+this.getClass().getSimpleName());

}

@Override

void start() {

System.out.println("this is "+this.getClass().getSimpleName());

}

}

class DieselAutomobile extends Automobile{

@Override

void start() {

System.out.println("this is "+this.getClass().getSimpleName());

}

void what(){

System.out.println("this is "+this.getClass().getSimpleName());

}

}

java請設(shè)計一個使用抽象類或接口的示例代碼

//接口

public?interface?BankCard?{

public?void?norm();

}

//工商銀行實(shí)現(xiàn)類

public?class?ICBCBankCard?implements?BankCard?{

@Override

public?void?norm()?{

//?TODO?銀行規(guī)范

}

public?void?saveMoney(int?money){

//TODO?執(zhí)行存錢動作?

}

public?void?transfer(String?account,int?money){

//TODO?執(zhí)行轉(zhuǎn)賬?動作

}

}

//交通銀行實(shí)現(xiàn)類

public?class?CommunicationsBankCard?implements?BankCard?{

@Override

public?void?norm()?{

//?TODO?銀行規(guī)范

}

public?void?saveMoney(int?money){

//TODO?執(zhí)行存錢動作?

}

public?void?transfer(String?account,int?money){

//TODO?執(zhí)行轉(zhuǎn)賬?動作

}

}

上面的例子只是申明了通用的規(guī)范,如果想讓實(shí)現(xiàn)類都能實(shí)現(xiàn)存錢和轉(zhuǎn)賬功能,可以在接口里面聲明這兩個方法,寫一個通用的實(shí)現(xiàn)類,實(shí)現(xiàn)這些方法,然后具體的子類繼承該通用類,這樣可以直接繼承父類方法,如果不同的銀行具體實(shí)現(xiàn)不同,可以復(fù)寫父類中的兩個方法。


文章名稱:java中抽象公用代碼 java抽象類使用方法
分享鏈接:http://weahome.cn/article/dohephs.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部