1.什么是继承?
继承就是子类继承父类的特征和行为,使得子类对象具有父类的属性和方法。
语法:children extends parent
子类构造方法完成子类对象的实例化时,会递归的调用父类的构造方法,构造方法不能重写
Java是单继承(直接父类)的,但可以多重继承(间接父类)
继承有什么好处?
1.减少代码的冗余,提高代码的复用性
2.便于功能的扩展
2.super和this关键字有什么作用?
super. 调用父类中的变量和方法
super(参数列表) 调用具有对应参数列表的父类构造方法。
this. 调用类自己变量或者方法
this(参数列表) 调用类自己具有对应参数列表的构造方法
return this; 可以返回本类对象的方法操作
this(形参列表):本类重载的其它的构造器
super(形参列表):调用父类中指定的构造器
什么是多态性?什么是虚拟方法调用?
Parent p = new Children();
1)可以理解为一个事物的多种形态。
2)什么是对象的多态性:父类的引用指向子类的对象
3)有了对象的多态性以后,我们在编译期,只能调用父类中声明的方法,但在运行期,我们实际执行的是子类重写父类的方法。
总结:编译,看左边;运行,看右边。
4)多态性的使用前提: ① 类的继承关系 ② 方法的重写
5)对象的多态性,只适用于方法,不适用于属性(编译和运行都看左边)
子类能否获取父类中private权限的属性或方法?
可以获取private,但是不能够调用private!
多态是编译时行为还是运行时行为?
运行时行为
3.向上转型和向下转型是什么?
向上转型 Param ad= new Children();
当使用父类创建对象,并将其引用指向子类对象时,称作向上转型
向下转型 Children param = (Children) param;
通过类型强制转换,可以将向上转型的父类对象转换为子类对象,这时该子类对象又具有了子类所有新增的变量和方法。
4.什么是抽象类和抽象方法?
抽象类不能实例化对象,所以抽象类必须被继承,才能被使用。
用关键字abstract修饰的类就是抽象类。
abstract类中可以有abstract方法,abstract方法只允许声明,不允许实现,而且不能使用final修饰abstract方法。
abstract类不能用new运算符创建对象,必须产生它的子类,由子类创建对象,并且子类必须具体实现它的abstract方法。
5.怎么使用反射?
通过反射机制能够通过实例化对象获取到类中具有的属性和方法,进而调用类中的方法。
使用对象的.getClass()方法,获取类的Class对象,使用getDeclaredMethod获取类中的方法。
6.String、StringBuffer、StringBuilder有什么区别?
String:不可变的字符序列、底层使用char[]数组存储的
StringBuffer:可变的字符序列、线程是安全的,但是效率较低,底层使用char[]数组存储的
StringBuilder:可变的字符序列、线程是不安全的,但是效率较高,底层使用char[]数组存储的
网友评论