1,Java中的继承是单继承,不同于C++,但是可以通过interface实现类似于多继承的功能。父类对之类的重写会覆盖父类的实现。同C++不同,Java默认的绑定都是晚绑定(多态),只有被final修饰的函数是早绑定的。interface Shape { publicvoid draw();}interface Action{ publicvoid action();}class Arc{ intlength; publicvoid draw(){ System.out.println("arc-draw"); }}publicclassCircle extendsArc implementsShape, Action{ publicvoid action() { System.out.println("circle-action"); } publicvoid draw(){ System.out.println("circle-draw"); } publicstaticvoid main(String args[]){ Shapeshape= newCircle(); shape.draw(); }}以上输出circle-drawCircle通过继承接口实现类似多继承功能,在Circle中实现了Action接口中的action(),并且覆盖了Arc中的该同名函数。2,Java中final关键字可以修饰变量,函数和类。修饰变量时,该变量必须在定义时初始化,作为类的成员变量也可以放在类的构造函数中初始化;修饰函数时,该函数在其子类中不能被覆盖,同时该函数为后绑定函数,编译器在编译时把该方法的调用编译为inline调用;修饰类时,该类不能被集成,该类中的所有函数也都是final的。Private的函数也是final的,所以private的函数调用类似于final的函数调用。3,Java中的抽象类通过abstract来定义的,不向C++通过纯虚函数来定义的。Java中通过abstract来定义的函数是抽象函数,抽象函数没有函数体,如果一个类继承与个抽象类,但是必须全部实现抽象父类的抽象函数,否则继承类也是抽象类。4,比C++不同,Java中有个和类平级的interface,在interface中的所有成员变量为public static final的,所有成员函数都是public的。在interface中的所有函数不能有函数体,只能是一个函数声明。实现interfaceclass必须实现interface中的所有函数。在系统开发中经常利用interface中的成员变量属性来定义系统常量。5,Java中的类可以定义在另外一个类的内部,叫做内部类。内部类类似于C++中的friend的功能,内部类能够访问外部类的private变量和函数。6,Java内部类也叫做成员类,所有能够修饰的成员变量的关键字也都能够修饰内部类。常用的先从安全的单例通过静态内部类:publicclassSingleton { privatestaticclass SingletonHolder {privatestaticfinal Singleton INSTANCE = new Singleton(); } private Singleton() { } publicstaticfinal Singleton getInstance(){ return SingletonHolder.INSTANCE; }}静态内部类SingletonHolder可以调用外部类Singleton的私有构造函数,而外部无法构造Singleton对象。静态内部类SingletonHolder在类加载时就加载,同时内部类SingletonHolder在加载时又加载内部静态变量INSTANCE实现Singleton的初始化构造,完成对象创建。7,内部类在编译时也单独编译成一个独立的.class文件。8,内部类通常用来实现类的封装,在多组开发人员开发系统时,可以仅仅通过接口约定来实现系统之间的衔接,而彼此之间实现完全的系统封装。interface Iclass{ void print();}class OutClass { class InnerClass implements Iclass{ @Override publicvoid print() { System.out.print("InnerClass"); } } public Iclass instance(){ returnnew InnerClass(); }}publicclassTestIClass{ publicstaticvoid main(String arsg[]){ Iclassclss= newOutClass().instance(); clss.print(); }}以上输出InnerClass以上clss自己并不知道自己是怎么实现的,对于TestIClass来说OutClass对接口实现了完全的封装,但是并不影响clss对print()的调用。以上笔记,如有错误请指正