抽象类
如果一个类只定义了一个为所有子类共享的一般形式,至于细节则交给每一个子类去实现,这种没有任何具体的实例,只具有一些抽象的概念,那么这样的类称为抽象类。
其语法:
class<class_name>{
<method_name>(parameter-list);
}
abstract表示抽象的,method_name表示方法名,抽象方法没有方法体。
abstract关键字只能用于普通方法,不能用于static方法或者构造方法中。在抽象类必须包含至少一个抽象方法,而且所有抽象方法不能有具体的实现,而应在他们的子类中实现所有的抽象方法(要有方法体)。任何使用new创建抽象类对象的尝试都会导致编译时错误。
内部类
在一个类内部的类,我们称之为内部类。内部类拥有外围类的所有元素的访问权限。内部类分为:实例内部类、静态内部类和成员内部类。
内部类仍然是一个独立的类,在编译之后内部类会被编译成独立的.class文件,但是前面冠以外部类的类名和$符号。内部类声明成静态的,就不能随便访问外部类的成员变量,仍然是只能访问外部类的静态成员变量
内部类注意:
外部类只有两种访问级别:public和默认;内部类则有四种:public、protected、private和默认。
内部类不能和外部类重名
在外部类以外的其他类则需要通过内部类的完整类名访问内部类