java中的抽象类,接口,内部类
抽象类(abstract class):
在class前加上abstract的类就是抽象类,如:public abstract class A{};
用abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法(抽象方法没有方法体)。
含有抽象方法的类必须被声明为抽象类,抽象类必须被继承,抽象方法必须被重写。
抽象类不能被实例化。
抽象方法只需声明,而不需实现。
类中可以没有抽象方法,但是抽象方法必须位于抽象类中!
子类继承抽象类必须重写抽象类里面的全部抽象方法。
使用抽象类的唯一途径是派生一个子类,如果这个子类实现了抽象类中所有的抽象方法,
那么这个子类就是一个普通的类。它可以用来创建对象。如果不实现父类中的所有抽象方法,
那么它也是一个抽象类,剩下的方法由它的子类实现。
抽象方法不能是静态方法,因为静态方法无需对象就能执行。
抽象类不能new抽象类。
接口(interface):
从本质上讲,接口是一种特殊的抽象类,这种抽象类中只包含常量和方法的定义,而没有变量和方法的实现。
多个无关的类可以实现同一个接口
一个类可以实现多个无关的接口(接口变相地实现了多继承)
与继承关系类似,接口与实现类之间存在多态性
接口里面只能有抽象方法,但是这种抽象方法没有abstract关键字。
接口特性:
接口可以多重实现;
接口中声明的属性默认为public static final的;也只能是public static final的;
接口中只能定义抽象方法,而且这些方法默认为public的、也只能是public的;
接口可以继承其它的接口,并添加新的属性和抽象方法。
接口定义举例
public interface Runner {
int id = 1;//这里默认为常量
public void start();
public void run();
public void stop();
}
综合例子:
public interface Runn
相关文档:
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后, ......
多线程
线程:是指进程中的一个执行流程。
线程与进程的区别:每个进程都需要操作系统为其分配独立的内存地址空间,而同一进程中的所有线程在同一块地址空间中工作,这些线程可以共享同一块内存和系统资源。
如何创建一个线程?
创建线程有两种方式,如下:
1、 扩展java.lang.Thread类
2、 实现Runnable接口
......
java经典书籍汇总(部分)
一、入门
《Java 2从入门到精通》- 推荐
《Thinking in Java》- 强烈推荐*
O’reilly的Java编程基础系列 - 参考*
二、进阶
《Java Cook Book》- 非常推荐* (包含了Java编程的Tips,适合当 ......
作文本编辑器的时候,撤销(undo)、恢复(redo)是必不可少的两个功能。实现这个功能,要用到javax.swing.undo包中的UndoManager类。
UndoManager类有如下常用方法:
boolean canUndo() ——判断能否进行撤消操作,可以则返回true。
boolean canRedo() ——判断能否进行恢复操作,可以则返 ......