-------------疯狂软件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培训、ios培训新年钜惠,报名Java就业班免费赠送java基础班,报名iOS就业班免费赠送iOS基础班,本月火速抢座中,为回报广大新老学员,值此新年之际推出报读就业班赠送基础班的活动。

  -----------------------------------2014年初活动--------------------------------------

  疯狂软件Java学习班方向:

  1.报读JavaEE就业班赠送基础班课程。

  2.开班一次性(一个月内)交清JavaEE就业班学费,赠送基础班全套课程。

  疯狂软件iOS学习班方向:

  1.报读iOS应用+手游就业班赠送iOS基础班课程。

  2.开班一次性(一个月内)交清iOS应用+手游就业班就业班学费,赠送基础班全套课程。