美文网首页
Java面试题库二

Java面试题库二

作者: 黑咔 | 来源:发表于2020-04-24 23:53 被阅读0次

    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[]数组存储的

    相关文章

      网友评论

          本文标题:Java面试题库二

          本文链接:https://www.haomeiwen.com/subject/jxuyjctx.html