手机
当前位置:查字典教程网 >编程开发 >Java >简单学习Java抽象类要点及实例
简单学习Java抽象类要点及实例
摘要:使用抽象类应该注意的几个要点:包含一个或者多个抽象方法的类必须被声明为抽象类.将类声明为抽象类,不一定含有抽象方法.通常认为,在抽象类中不应...

使用抽象类应该注意的几个要点:

包含一个或者多个抽象方法的类必须被声明为抽象类.

将类声明为抽象类,不一定含有抽象方法.

通常认为,在抽象类中不应该包括具体方法,建议尽量将通用的域和方法放在超类中.

抽象类不可以被实例化.即不能创建这个类的对象

实例代码:

复制代码 代码如下:

import java.util.*;

/**

* This program demonstrates abstract classes.

* @version 1.01 2004-02-21

* @author Cay Horstmann

*/

public class PersonTest

{

public static void main(String[] args)

{

Person[] people = new Person[2];

// fill the people array with Student and Employee objects

people[0] = new Employee("Harry Hacker", 50000, 1989, 10, 1);

people[1] = new Student("Maria Morris", "computer science");

// print out names and descriptions of all Person objects

for (Person p : people)

System.out.println(p.getName() + ", " + p.getDescription());

}

}

abstract class Person

{

public Person(String n)

{

name = n;

}

public abstract String getDescription();

public String getName()

{

return name;

}

private String name;

}

class Employee extends Person

{

public Employee(String n, double s, int year, int month, int day)

{

super(n);

salary = s;

GregorianCalendar calendar = new GregorianCalendar(year, month - 1, day);

hireDay = calendar.getTime();

}

public double getSalary()

{

return salary;

}

public Date getHireDay()

{

return hireDay;

}

public String getDescription()

{

return String.format("an employee with a salary of $%.2f", salary);

}

public void raiseSalary(double byPercent)

{

double raise = salary * byPercent / 100;

salary += raise;

}

private double salary;

private Date hireDay;

}

class Student extends Person

{

/**

* @param n the student's name

* @param m the student's major

*/

public Student(String n, String m)

{

// pass n to superclass constructor

super(n);

major = m;

}

public String getDescription()

{

return "a student majoring in " + major;

}

private String major;

}

在代码块:

复制代码 代码如下:

for (Person p : people)

System.out.println(p.getName() + ", " + p.getDescription());

中p.getDescription(),将引用具体子类的子类对象的方法.

不可以省略Person类中的getDescription(),原因是编译器只允许调用在类中声明的方法.

【简单学习Java抽象类要点及实例】相关文章:

java匿名内部类实例简析

基于Java堆内存的10个要点的总结分析

Java教程各种接口的介绍

java定时调度器(Quartz)使用实例

java获取当前日期使用实例

Java压缩文件ZIP实例代码

Java排序实现的心得分享

Java自动解压文件实例代码

Java实现堆排序(Heapsort)实例代码

java断点续传功能实例(java获取远程文件)

精品推荐
分类导航