JAVA基础知识10——this super 多态

接着JAVA基础知识9——参数传递、static关键字、继承、重写继续复习
1.this关键字和super关键字区别
this关键字
代表当前这个对象
this可以访问本类中的实例变量、实例方法也可以方法本类中的其他构造方法
this还可以访问父类中的实例变量、实例方法
super关键字
表示超类或父类
super只能在子类中使用,可以访问父类中的实例变量、实例方法、还可以访问父类的构造方法

2.当实例化子类时父类做了什么
先执行父类的构造方法,然后再执行子类的相匹配构造方法
如果子类构造方法中没有指明则默认调用父类无参构造方法
如果子类构造方法中指明调用父类哪个构造方法,则先执行父类相匹配的构造方法,然后再执行子类相匹配构造方法
建议:当手动编写构造方法时,先编写无参构造方法,再编写所需要的构造方法

3. 多态
多态的语法格式:
父类类名 引用名称 = new 子类类名();

当是多态时,该引用名称只能访问父类中的属性和方法,但是优先访问子类重写以后的方法
多态:将多个对象调用同一个方法,得到不同的结果
满足多态的条件:
子类必须继承父类
子类重写父类的方法
父类类名 引用名称 = new 子类类名();


4.多态好处: 减少代码的冗余性

5.多态中的两种类型转换
向上转型,也叫做自动类型转换,构成多态
父类类型 引用名称 = new 子类类名();
当是多态时,该引用名称只能访问父类中的属性和方法,但是优先访问子类重写以后的方法
向下转型,也叫做强制类型转换
当是多态时,并且访问子类独有的属性或方法时,则必须进行向下转型
当进行向下转型时,建议先进行判断,当合法则在转为对应的类型,则使用instanceof关键字,否则可能会出现类型转换异常java.lang.ClassCastException

你可能感兴趣的:(JAVA基础知识10——this super 多态)