1:final关键字可以干什么?有什么特点?
Fianl可以用来修饰变量.方法和类,使其不能被更改.
被修饰的类,不能被继承。
被修饰的方法,不能被重写
被修饰的变量,不能被重新赋值。
2:final关键字的面试题?
A:修饰局部变量
基本类型:值不可以被更改重新赋值
引用类型:地址不可以被更改
B:初始化时机
显式初始化
在对象构造完毕前即可
3:多态是什么,前提是什么?
多态:某一个事物,在不同时刻表现出来的不同状态。
多态的前提是继承,方法重写,父类引用指向子类.
4:多态中成员访问的特点?
成员变量
编译看左边,运行看左边
成员方法
编译看左边,运行看右边
静态方法
编译看左边,运行看左边
5:多态的好处及弊端?如何解决多态的弊端?
好处:
提高了程序的维护性(由继承关系保证)
提高了代码的扩展性(由多态保证)
弊端:
子类无法访问到子类的特有方法
解决方案:向下转型
6:什么是向上转型?什么是向下转型?
向上转型是将子类转为父类,
Animal a = new Cat
向下转型是将父类转型为子类
Animal c = (Cat) a;
7:请描述下this和super的区别?
This表示对子类对象的引用
Super表示对对父类的引用
8:方法重写和方法重载的区别?
方法重写:方法名相同,参数类型相同,参数个数相同.
方法重载:方法名相同,参数类型不同或参数个数不同.