上次已经为大家介绍过java抽象类是什么的主要内容了,关于抽象类的知识还是有很多可以拓展的,它继承的知识也是非常的多的,接下来就通过实际的代码来为大家解析一下,一起来了解一下吧。
首先我们需要知道的是,由于抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。也是因为这个原因,通常在设计阶段决定要不要设计抽象类。父类包含了子类集合的常见的方法,但是由于父类本身是抽象的,所以不能使用这些方法。
另外,在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。
继承抽象类,我们能通过一般的方法继承Employee类,Salary.java文件代码如下所示:
/* 文件名 : Salary.java */ public class Salary extends Employee { private double salary; //Annual salary public Salary(String name, String address, int number, double salary) { super(name, address, number); setSalary(salary); } public void mailCheck() { System.out.println("Within mailCheck of Salary class "); System.out.println("Mailing check to " + getName() + " with salary " + salary); } public double getSalary() { return salary; } public void setSalary(double newSalary) { if (newSalary >= 0.0) { salary = newSalary; } } public double computePay() { System.out.println("Computing salary pay for " + getName()); return salary / 52; } }
尽管我们不能实例化一个Employee类的对象,但是如果我们实例化一个Salary类对象,该对象将从Employee类继承7个成员方法,且通过该方法可以设置或获取三个成员变量。
AbstractDemo.java文件代码如下:
/* 文件名 : AbstractDemo.java */ public class AbstractDemo { public static void main(String[] args) { Salary s = new Salary("Mohd Mohtashim", "Ambehta, UP", 3, 3600.00); Employee e = new Salary("John Adams", "Boston, MA", 2, 2400.00); System.out.println("Call mailCheck using Salary reference --"); s.mailCheck(); System.out.println("\n Call mailCheck using Employee reference--"); e.mailCheck(); } }
以上程序编译运行结果如下所示:
Constructing an Employee Constructing an Employee Call mailCheck using Salary reference-- Within mailCheck of Salary class Mailing check to Mohd Mohtashim with salary 3600.0 Call mailCheck using Employee reference-- Within mailCheck of Salary class Mailing check to John Adams with salary 2400.
以上就是关于java抽象类怎么继承的具体内容了,并且用实际的代码为大家展示出来。如果你对java知识感兴趣,想要了解更多java实例,敬请关注奇Q工具网。
推荐阅读: