一:特性
1.继承性
继承:方法、属性(包括private),只是私有的不能直接调用。
单继承、多层继承:只能有一个父类,但可以继承父类的父类的结构。
创建子类对象时,会在堆空间加载所有父类的结构(比如静态代码块、静态属性等),并调用父类的构造器super( ),但实际只有一个对象
super( ):没有显示声明this( )、super( )时,都默认提供构造器super( )
2.多态性
①运行时行为:
Person p=new Man( );编译时看Person,运行时看Man。即p只能调用Person中的结构,但Man中若重写过则运行的是Man的结构
内存中实际加载了父类、子类的结构,但只会暴露一个地址值,编译时只能调p类型的结构
属性没有多态,即p.属性是调用的Person中的
②向上、向下转型
向上转型:多态 Object obj=new Woman( );
向下转型:(Person )obj //可以运行
(Person)man //运行报错
③判断是否为子类
x instanceOf A:x是否是A的子类
二:关键字
1.static
可以直接用类名调用,static可以修饰属性、方法、代码块、内部类,static修饰的结构在类加载时就加载到内存中
①属性
存放在方法区静态域中