Java抽象类简单学习
来源:互联网 发布:淘宝攻略卖家 编辑:程序博客网 时间:2024/06/07 02:14
使用抽象类应该注意的几个要点:
- 包含一个或者多个抽象方法的类必须被声明为抽象类.
- 将类声明为抽象类,不一定含有抽象方法.
- 通常认为,在抽象类中不应该包括具体方法,建议尽量将通用的域和方法放在超类中.
- 抽象类不可以被实例化.即不能创建这个类的对象
实例代码:
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(),原因是编译器只允许调用在类中声明的方法.
0 0
- Java抽象类简单学习
- JAVA学习.抽象类
- Java学习(六)--简单了解抽象
- java抽象类简单示例
- Java学习:抽象类,抽象方法
- 学习JAVA中的抽象类
- java学习总结-抽象类
- Java学习总结-抽象类
- 【java】抽象类的学习
- java abstract抽象类学习
- JAVA学习十一:抽象类
- Java学习·抽象类
- Java学习之抽象类
- Java抽象类的学习
- Java学习经历--------抽象类
- JAVA学习笔记--抽象类
- Java学习笔记-抽象类
- Java学习之抽象类
- 看看能不能发blog
- ASP.net的url重写
- 【项目6】设计一个工资类(Salary)
- 边界模糊的图像分割
- 转码方式
- Java抽象类简单学习
- source insight 里编辑的时候,每次粘贴后,光标停留在粘贴内容的左面【转】
- request_irq 中断号
- B2C购物网站常用分类目录
- 菜鸟来了
- iOS系统网络抓包方法
- 电脑关不了机的原因
- 问题解决: Vmware 装 fedora17 时 出现, unable to process initqueue
- hadoop安装--2.下载安装程序