java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Java抽象类的作用

Java中抽象类的作用及说明

作者:代码大师麦克劳瑞

这篇文章主要介绍了Java中抽象类的作用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

Java抽象类

可以理解为一种约定工具,在代码中抽象类在某种情况适合用来写出大体框架,具体实现流程由抽象类事先定义完毕,具体实现过程可以定义抽象方法,而抽象方法交由子类去具体实现。

举个例子

定义一个数据库查询的实现规范:

1、注册驱动

2、获取链接

3、执行查询语句

其中execute()方法在抽象类中已经定义完毕,需要其余三个方法来辅助实现,但是具体的注册驱动、获取链接、执行sql等方法就要放在不同的数据库实现类中去完成

代码如下:

import java.sql.Connection;
 
/**
 * 数据库链接抽象类
 */
public abstract class AbstractDataBaseClass {
 
    /**
     * 注册驱动
     */
    public abstract void registerDriver();
 
    /**
     * 获取链接
     * @return
     */
    public abstract Connection getConnection();
 
    /**
     * 执行sql
     */
    public abstract void  executeSql();
 
    public void execute(){
        this.registerDriver();
        this.getConnection();
        this.executeSql();
    }
}
import java.sql.Connection;
 
/**
 * oracle具体实现类
 */
public class OracleDataBaseClass extends AbstractDataBaseClass {
    @Override
    public void registerDriver() {
        System.out.println("注册oracle数据驱动");
    }
 
    @Override
    public Connection getConnection() {
        System.out.println("获取oracle数据库链接");
        return null;
    }
 
    @Override
    public void executeSql() {
        System.out.println("在oracle数据库中执行sql");
    }
}
import java.sql.Connection;
 
/**
 * mysql具体实现类
 */
public class MysqlDataBaseClass extends AbstractDataBaseClass {
    @Override
    public void registerDriver() {
        System.out.println("注册mysql数据驱动");
    }
 
    @Override
    public Connection getConnection() {
        System.out.println("获取mysql数据库链接");
        return null;
    }
 
    @Override
    public void executeSql() {
        System.out.println("在mysql数据库中执行sql");
    }
}
public class DataBaseTest {
 
    public static void main(String[] args) {
        AbstractDataBaseClass mysql = new MysqlDataBaseClass();
        mysql.execute();
        System.out.println("----------------------------------------");
        AbstractDataBaseClass oracle = new OracleDataBaseClass();
        oracle.execute();
    }
}

执行结果:

注册mysql数据驱动
获取mysql数据库链接
在mysql数据库中执行sql
----------------------------------------
注册oracle数据驱动
获取oracle数据库链接
在oracle数据库中执行sql

抽象类的意义

抽象的意义:对代码的维护和重用。

抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。

具体分析如下

1.因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用。这样就可以把一些具有相同属性和方法的组件进行抽象,这样更有利于代码和程序的维护。

比如本科和研究生可以抽象成学生,他们有相同的属性和方法。这样当你对其中某个类进行修改时会受到父类的限制,这样就会提醒开发人员有些东西不能进行随意修改,这样可以对比较重要的东西进行统一的限制,也算是一种保护,对维护会有很大的帮助。

2.当又有一个具有相似的组件产生时,只需要实现该抽象类就可以获得该抽象类的那些属性和方法。

比如学校又新产生了专科生这类学生,那么专科生直接继承学生,然后对自己特有的属性和方法进行补充即可。这样对于代码的重用也是很好的体现。

所以,Java中抽象类对于代码的维护和重用有很好的帮助,也是Java面向对象的一个重要体现。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文