java中抽象公用代码 java抽象类使用方法

Java中 为什么说抽象类是代码重构的结果?

首先软件开发中最难以预料的莫过于应对需求不断发生的变化.

望江网站建设公司创新互联公司,望江网站设计制作,有大型网站制作公司丰富经验。已为望江上1000家提供企业网站建设服务。企业网站搭建\成都外贸网站建设公司要多少钱,请找那个售后服务好的望江做网站的公司定做!

在程序开发中为了尽可能的减小(不可能避免)变化对总体的影响,一种设计思想便是在一个继承关系的树形的等级结构中,树叶节点应当是具体类.而树枝节点应当是抽象类(或java接口).

抽象类是用来被继承的类,只要有可能就不应从具体类继承,在一个从抽象类到多个具体类的继承关系中,共同的代码(公用方法)应当尽量的移到抽象类里.这样提供代码的复用率.

因此,在编程时,应该当针对抽象类编程,而不应当针对具体类编程,因此,在一个合理的编程过程中,抽象类是代码重构的结果,而非具体类.

java程序,抽象类实现,求具体代码

package test;

/**

*

* @author JinnL

*父类抽象类

*/

public abstract class Car {

//转弯

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请设计一个使用抽象类或接口的示例代码

//接口

public interface BankCard {

public void norm();

}

//工商银行实现类

public class ICBCBankCard implements BankCard {

@Override

public void norm() {

// TODO 银行规范

}

public void saveMoney(int money){

//TODO 执行存钱动作 

}

public void transfer(String account,int money){

//TODO 执行转账 动作

}

}

//交通银行实现类

public class CommunicationsBankCard implements BankCard {

@Override

public void norm() {

// TODO 银行规范

}

public void saveMoney(int money){

//TODO 执行存钱动作 

}

public void transfer(String account,int money){

//TODO 执行转账 动作

}

}

上面的例子只是申明了通用的规范,如果想让实现类都能实现存钱和转账功能,可以在接口里面声明这两个方法,写一个通用的实现类,实现这些方法,然后具体的子类继承该通用类,这样可以直接继承父类方法,如果不同的银行具体实现不同,可以复写父类中的两个方法。


分享标题:java中抽象公用代码 java抽象类使用方法
当前URL:http://azwzsj.com/article/dohephs.html