java抽象类是什么?实例代码展示

BSO 2020-11-17 16:41:32 java常见问答 8190

关于java抽象类的含义还是非常丰富的,所包含的内容还是比较广阔的。接下来结合实际的代码来为大家解析下。一起来了解一下吧。

首先,我们需要知道的是,在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

同时,抽象类除了不能实例化对象之外,类的其它功能依然存在,成员变量、成员方法构造方法的访问方式和普通类一样。

在Java语言中使用abstract class来定义抽象类,Employee.java代码如下所示:

/* 文件名 : Employee.java */
public abstract class Employee
{
    private String name;
    private String address;
    private int number;
    public Employee(String name, String address, int number)
    {
        System.out.println("Constructing an Employee");
        this.name = name;
        this.address = address;
        this.number = number;
    }
    public double computePay()
    {
        System.out.println("Inside Employee computePay");
        return 0.0;
    }
    public void mailCheck()
    {
        System.out.println("Mailing a check to " + this.name +
            " " + this.address);
    }
    public String toString()
    {
        return name + " " + address + " " + number;
    }
    public String getName()
    {
        return name;
    }
    public String getAddress()
    {
        return address;
    }
    public void setAddress(String newAddress)
    {
        address = newAddress;
    }
    public int getNumber()
    {
        return number;
    }
}

注意到该Employee类没有什么不同,尽管该类是抽象类,但是它仍然有3个成员变量,7个成员方法和1个构造方法。 现在如果你尝试如下的例子,AbstractDemo.java文件代码:

/* 文件名 : AbstractDemo.java */
public class AbstractDemo
{
    public static void main(String[] args)
    {
        /* 以下是不允许的,会引发错误 */
        Employee e = new Employee("George W.", "Houston, TX", 43);
        System.out.println("\n Call mailCheck using Employee reference--");
        e.mailCheck();
    }
}

当你尝试编译AbstractDemo类时,会产生如下错误,代码如下所示:

Employee.java: 46: Employee is abstract;
cannot be instantiated
Employee e = new Employee("George W.", "Houston, TX", 43); ^
1 error

以上就是关于java抽象类是什么的主要内容了,并且通过实际的代码为大家展示出来了。如果你想要了解更多java经典例子,敬请关注奇Q工具网。

推荐阅读:

java抽象类的特点有哪些?图文详解

java中抽象类的定义是什么?它的方法是什么?

java抽象类经典实例分享