IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 【Java核心面试宝典】Day8、面向对象常见面试题汇总(三) -> 正文阅读

[Java知识库]【Java核心面试宝典】Day8、面向对象常见面试题汇总(三)

Hello,你好呀,我是灰小猿!一个超会写bug的程序猿!
用坚持缔造技术、用指尖敲动未来!
和很多小伙伴们一样,我也是一名奔波在Java道路上的“创造者”。也想靠技术来改未来,改变世界!因为我们坚信每一次敲动键盘都能让生活变得更智能、世界变得更有趣
在此专栏《Java核心面试宝典》记录我们备战梦想的【day 8】

在这里插入图片描述

面向对象作为我们在Java编程的核心思想,在面试上的考察点还是非常的多的,之前已经和小伙伴们总结了两篇有关面向对象的面试题了,今天继续~~~

1、在继承关系中,子类是不是父类的子集?

子类不是父类的子集,子类包含父类所有的类成员,同时还有自己特有的成员变量,所以子类通常包含比父类更多的类成员。

2、定义继承关系时,父类和子类之间应存在什么关系?

父类与子类之间应存在is-a的关系

3、super关键字的作用是什么?

关键字 super 指向当前类的的父类。关键字 super 可以用于两种途径,一是调用父类的构造方法,二是调用父类的方法。

调用父类的构造方法,使用 super()super(参数),该语句必须是子类构造方法的第一个语句,且这是调用父类构造方法的唯一方式。

调用父类的方法,使用 super.方法名(参数)

4、有继承关系时,构造方法的调用顺序是怎样的?

构造一个类的实例时,会沿着继承链调用所有父类的构造方法,父类的构造方法在子类的构造方法之前调用,即构造方法的调用顺序是从父类到子类的。
如下面的实例:

public class Class3 extends Class2 {
    public static void main(String[] args) {
        new Class3();
    }

    public Class3() {
        System.out.println("D");
    }
}

class Class2 extends Class1 {
    public Class2() {
        this("B");
        System.out.println("C");
    }

    public Class2(String s) {
        System.out.println(s);
    }
}

class Class1 {
    public Class1() {
        System.out.println("A");
    }
}


解释一下上面的程序:由于 Class2 是 Class1 的子类,Class3 是 Class2 的子类,因此在 Class3 的构造方法中的所有语句运行之前,先调用 Class2 的无参数构造方法。Class2 的无参数构造方法调用了有参数构造方法,在 Class2 的有参数构造方法中的所有语句运行之前,先调用 Class1 的无参数构造方法。因此,运行上述代码得到的输出结果是:
A
B
C
D

5、重写中,子类的方法返回值类型是否可以与父类的不完全一致?

如果返回值类型是基本数据类型或void,则必须保持一致,如果父类的返回值是引用数据类型,则子类的返回值类型必须与父类一致或者是父类返回值类型的子类。

6、重写和重载的区别是什么?

重载是指一个类中定义多个方法,这些方法有相同的名称,但是方法的签名不同;
重写是指在子类中定义一个方法,该方法与父类中的该方法的签名相同,返回值类型相同或者子类返回值是父类方法返回值的子类。

重载重写
场合同一个类父类和子类
方法名称相同相同
方法签名不同相同
返回值类型可以不同相同或者子类返回值类型是父类返回值类型的子类

7、可见性修饰符protected表示可以从哪里访问类成员?

可见性修饰符 protected 表示类成员可以在同一个包里的任何类中访问,也可以在继承了该类的子类中访问。

8、关键字final用于修饰类和方法时,其含义是什么?

使用final修饰的类是终极类,不能被继承。使用final修饰的方法不能被子类重写。

9、什么是native方法?

关键字native表示实现方法的编程语言不是Java

10、判断两个对象内容是否相等时,是否可以使用“== ”?应该使用什么方法?

判断两个对象内容是否相等应该使用equals方法,而不能使用“ == ”,“==”的作用是判断两个对象是否具有相同的引用

11、重写equals方法有什么要求?

根据散列约定,如果两个对象相同,他们的散列码一定相同,因此如果重写了equals方法,必须重写hashCode方法,以保证两个相等的对象对应的散列码是相同的。

12、说一说Object类中的finalize方法?

protected void finalize() throws Throwable

finalize方法用于垃圾回收,如果一个对象不能再被访问,就变成了垃圾,finalize 方法会被该对象的垃圾回收程序调用。该方法的默认实现不做任何事,如果必要,子类应该重写该方法。
该方法可能抛出 Throwable 异常。所以轻易不要重写finalize()方法,否则会导致垃圾回收出现问题,从而产生内存泄露问题

今日总结

今天和大家分享有关继承和Object类的一些常见面试题,我们需要掌握继承中的调用顺序方法重写和重载的区别equals和“==”的区别等。

面向对象的面试题比较多,之后还会继续总结,如果小伙伴们有遇到其他相关的面试题,欢迎在评论区留言提出,我会把大家提出的总结到文章内`, 欢迎小伙伴们一起评论区打卡学习!小伙伴们可也在左方加我好友一起探讨学习!

我是灰小猿,我们下期见!
请添加图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2021-08-06 21:09:49  更:2021-08-06 21:09:56 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/12 1:12:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码