-------------疯狂软件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应用+手游就业班就业班学费,赠送基础班全套课程。