一、构造器的问题:
构造器的作用:1.创建对象 2.初始化对象是属性
说明:
1.如果没有显式的定义类的构造器的话,则系统提供一个默认的构造器。
2.一个类中定义多个构造器,彼此可以构成重载。
3.一旦显式的定义了类的构造器,系统不再提供默认的空参构造器。
二、this:
this可以修饰属性 方法 构造器
修饰属性方法时候,相当于“当前对象“, 当前对象的属性,当前对象的方法。
1.在类的方法中,我们可以用“htis.属性”或者“this.方法”的方式调用当前对象的属性或者方法,一般情况下是省略this. 但是当形参和属性同名的时候,我们必须显示的使用“this.变量”来区分比变量是属性而不是形参。
2.在构造器中,我们可以用“htis.属性”或者“this.方法”的方式调用当前正在创建的对象的属性或者方法,一般情况下是省略this. 但是当构造器的形参和对象的属性同名的时候,我们必须显示的使用“this.变量”来区分比变量是属性而不是形参。
3.this修饰调用构造器:在构造器中调用构造器的话
1)在构造器中,可以显示的使用“this(形参)”来调用本类中的其他构造器
2)构造器中不能调自己
3)规定“this(形参)”必须声明在构造器的首行
4)构造器内部,只能声明一个“this(形参)”来调用其他构造器。
三、继承
子类A继承父类B后,子类A就获取了父类B中声明的结构、属性、方法。
特别的,父类中声明为private的属性或方法,子类继承父类后,也继承了父类中私有的结构,只不过因为封装性,不能直接调用父类的结构。
四、super
super可以理解为,父类的
super可以用来调用属性、方法、构造器。
1.当子类和父类中定义了同名的属性时,想在子类中调用父类声明的属性时,则必须使用“super.属性”的方式,表用调用的是父类中声明的属性。
2.super调用构造器:
1)在子类的构造器中显示使用“super(参数)”来调用父类中声明的指定的构造器。
2)“super(参数)”必须声明在首行
说明:在类的构造器中,“this(参数)”和“super(参数)”只能二选一
对于普通的
实际上是省略了“super(参数)” 本质是
五、多态:父类的引用指向子类的对象
多态的使用:当调用子父类同名同参数的方法时候,实际执行的是子类重写父类的方法。----虚拟方法调用。
在编译时候只能调用父类中声明的方法,实际执行时候执行的是子类重写父类的方法。
虚方法的调用:子类重写了父类的方法,在多态时,此时将父类方法称为虚拟方法。父类根据赋给它的不同子类对象,动态调用属于子类的该方法。