继承关键字 extends

子类extends基类

重写(覆盖):子类和基类中方法和参数列表都相同

编译期----静态联编   

运行期-----动态联编

多态发生在运行期,当基类为抽象类,子类为实现抽象类的重写方法时,基类对象调用子类中该抽象类的重写方法时,就会产生多态

RTTM 运行时的类型信息:

所有对象的类型对象都在class对象里面存储,方法与类型对应

继承与多态及抽象类与接口

继承与多态及抽象类与接口

java编译器把类的实例方法都默认处理成了virtual(虚函数)

重写权限不能降低,private基类/static方法/基类构造方法不能被重写,final 方法不能被重写或继承

抽象类与普通类的唯一区别:不能创建对象

抽象类内不一定有抽象方法,但抽象方法的类一定是抽象类

抽象类构造函数数可以发生多态

private可以继承,但继承过来不能被访问,static和final不能放在一起

接口:一种功能的约定,可定制,关键词interface , 实现连接词implements

类的继承只能继承一个基类,但接口可以被继承多个

Object类中有的方法:

getClass();  hashCode();  Clone(); equals(); toString();  finalize();

hashCode()用来返回对象的内存地址,不同对象hashCode()不同,

equals默认比较引用(地址),比较值需重写equals方法

clone可以产生新对象(相当于浅拷贝),可以自动产生构造函数,对象支持clone,必须实现clone接口,空接口称标记接口

final的三个使用1.定义常量   2,.定义方法   3.final 密封

finalize  调用时间不确定,回收释放本地资源,调用本地方法中的方法时必须使用finalize,只调用一次

hashcode 相同,equals一定相同

equals相同,hashcode 不一定相同

成员变量一般设置为private,如果该类设置基类,成员变量设置为pretect,成员方法打算为用户使用,方法实现为public

静态内部类不能访问外部类的成员变量,可以访问静态成员变量

外部类前可以加的修饰词有public  / abstract  /final  /strictfp

单例模式:永远只能得到这个类的一个对象

快加载:在使用对象之前就已经new好了一个对象

慢加载:在需要使用对象进行调用对象时才new一个对象

JVm保证静态域内容开辟和初始化是一个原子操作(不会被线程调度机制打断的操作,一旦开始,就直到运行结束)

实例内部类:外部类的一个实例成员

实例内部类中不能定义static成员?

静态对象是默认加载的,静态内部类应该先于外部类被加载到内存中,而内部静态类不能直接被实例化,必须实例化外部类才能再去实例化它,矛盾。



本地内部类:把类定义在方法里面static/实例方法






















相关文章: