1. Java 面向对象基本概念
Java
基本上是面向对象的程序设计语言, 除了一些简单类型(primitive)的变量以外,一切
都是对象, 程序是对象的组合, 每个对象都有自己的空间, 并且每个对象都有一种类
型, 同一类所有对象都能接受相同的消息。 下面只对 Java 中对象的结构作简单的说明:
类(class): class 是定义类的关键字,
类中包含类变量, 方法, 内部类,
内部接口等。由 class
可以生成类的实例, 即一个个对象。 如果一个类的成员被
定义成 static
的,则这个成员不专属于任何对象, 而是属于这个类, 所有的对
象共享这个成员。
抽象类(abstract class):
抽象类不能直接生成一个实例, 抽象类中必需有方法
是 abstract
的,抽象类的意思就是它实现了一部分的方法, 而定义为 abstract 的
方法则需要在它的字类中去实现。
接口(interface):
接口可以理解为纯抽象的类, 它的每个方法都是未实现的,
它可以有成员变量, 但必须是 static 的。 一个类如果从这个接口继承
(implements)则它必须实现这个接口的所有方法。
继承类用关键字:extends,继承接口用关键字:implements
。一个类只能从一个类继承下
来, 但可以从多个接口继承(类似于 C++
的多重继承)。 字类可以覆盖父类的方法
(method)
, 但不能覆盖父类的成员变量(field)
。 如果父类的方法为 final 或 static 的则不能
被覆盖。类的初始化顺序是, 如果有父类, 则先初始化父类的 field,然后执行父类的构
造函数, 如果子类没有显式的去调父类的构造函数则缺省的会去调父类的无参数构造函
数。 然后是子类的 field 与构造函数的初始化。
public interface
SuperInterface {
public staitc
String SOME_FLAG = “1”;
public void
someMethod();
}
public Class
SuperClass {
{ System.out.println(“init SuperClass field”);}
public
SuperClass() {System.out.println(“init SuperClass Constructor”); }
public void
runMethod() { System.out.println(“run SuperClass
runMethod()”); }