Java 抽象类 - Java 面向对象编程

从某种角度来看,祖先类更加通用,可以只将它作为派生其他类的基类,而不作为特定的实例类。如考虑对 Employee 类层次的扩展,一名雇员是人,一名学生也是人。将类 Person 和 类 Student 添加到类的层次结构中。 每个人都有诸如姓名这样的属性,可以将 getName 方法放置在位于继承关系较高层次的通用超类中。可以使用 abstract 关键字将其实现为抽象方法。 public abstract String getName();//不需要实现 包含一个或多个抽象方法的类本身必须被声明为抽象的。 abstract class Person { ... public abstract String getName(); } 除了抽象方法外,抽象类还可以包含具体数据和具体方法,如: abstract class Person { private String description; public Person(String description) { this.description = description; } public abstract String getName(); public abstract String getDescription() { return description; } } 扩展抽象类也可以是抽象类。即使类不含抽象方法,也可以将类声明为抽象类。

面向对象程序设计(简称 OOP)是当今主流的程序设计泛型。Java 是完全面向对象的,面向对象的程序是由对象组成,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。

面向对象将数据放在第一位,然后在考虑操作数据的算法。

类(class)是构造对象的模板和蓝图,由类构造(construct)对象的过程称为创建类的实例(instance)。

封装(encapsulation)将数据和行为组合在一个包中,并对对象的使用者隐藏了数据的实现方式。对象中的数据称为实例域(instance field),操纵数据的过程称为方法(method)。对于每个特定的类实例(对象),都有一组特定的实例域值。这些值的集合就是这个对象的当前状态(status)。封装的关键在于绝对不能让类中的方法直接访问其它类的实例域,程序仅通过对象的方法与对象数据进行交互。封装可以提高程序的重用性和可靠性。

继承(inheritance)是通过扩展一个类来建立一个新的类,这个扩展后的新类具有所扩展的类的全部属性和方法。

要想使用对象必需首先构造对象,并指定其初始状态,然后对对象应用方法。如下:

Date today = new Date();  
System.out.println(today.toString());  

Date 是 Java 标准库中的一个类,它的对象描述的是一个时间点。通过在构造器前(构造器名和类名相同)加上 new 操作符,构造了一个 Date 对象,并将其赋值给给 today 变量。然后调用 Date 类中的 toString 方法,返回日期的字符串描述,并在控制台打印。


Run