当使用的代码不再同一个包是,需要引包 import+包名; 子类对象的实例化过程: 流程1:产生对象并对成员变量默认初始化—对构造方法中的形式参数赋值—构造方法中是否有this语句调用是的话走流程2—super语句调用或隐式调用父类的构造方法是的话走父类流程0—对当前类中的成员变量显式初始化 流程2:对构造方法中的形式参数赋值—构造方法中是否有this语句调用—super语句调用或隐式调用父亲的构造方法按流程1方式一直追溯到Object类为止—对当前类中的成员变量显式初始化—执行当前构造方法中的代码 父系流畅:super语句调用或隐式调用父类的构造方法—对构造方法中的形式参数赋值—构造方法中是否有this语句调用—super语句调用或隐式调用父类的构造方法—一直追溯到Ovject类为止—对当前类中的成员变量显式初始化—执行当前构造方法中的代码 super和this调用语句不能再一个构造器中使用,this优先级高,两句都需要时第一句 构造方法的作用是完成初始化 创建子类时会默认调用父类的构造方法 多态性:面向对象中最重要的概念,在java中有两种体现:1、方法的重载和重新 2、对象的多态性—可以直接应用在抽象类和接口上。 Java引用变量有两个类型:编译时类型和运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。 若编译时类型和运行时类型不一样,就出现多态。多态的实现: (1)父类数据类型 (2)继承,方法重写,父类对象指向子类实例 (3)1、父类数据类型不能强制转换子类 (3)2、兄弟类之间数据类型不能转换