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