面试题

51.构造方法能不能重载?能不能重写?
可以重载,必须重写
简单说,就是同样的一个方法能够根据输入数据的不同,做出不同的处理,即方法的重载——有不同的参数列表(静态多态性)而当子类继承自父类的相同方法,输入数据一样,但要做出有别于父类的响应时,你就要覆盖父类方法,即在子类中重写该方法——相同参数,不同实现(动态多态性)。
52.如果父类只有有参构造方法,那么子类必须要重写父类的构造方法吗?
必须重写
子类继承了父类,若父类的构造方法没有重载那么,子类的构造方法也不需要通过super调用父类构造方法。一个类中如果构造方法重写了并且带了参数,那么这个类的原来系统默认的无参构造方法便消失。由此,若一个父类中只有一个带参数的构造方法,那么在写其子类的构造方法时必须先通过super调用父类的构造方法才能完成子类的构造方法而且super只能写在子类构造方法体内的第一行。
53.创建一个子类对象的时候,那么父类的构造方法会执行吗?
会执行。当创建一个子类对象,调用子类构造方法的时候,子类构造方法会默认调用父类的构造方法。
一个类继承了其它类时,在它的构造函数(constructor)中super()必须被首先调用,如果super()没有被调用,则编译器将在构造函数(constructor)的第一行插入对super()的调用。这就是为什么当创建一个子类的对象时会调用父类的构造函数(constructor)的原因。

54.什么是父类引用指向子类对象?
是java多态一种特殊的表现形式。创建父类引用,让该引用指向一个子类的对象
定义一个父类类型的引用指向一个子类的对象既可以使用子类强大的功能,又可以抽取父类的共性。
所以,父类类型的引用可以调用父类中定义的所有属性和方法,而对于子类中定义而父类中没有的方法,它是无可奈何的;
同时,父类中的一个方法只有在在父类中定义而在子类中没有重写的情况下,才可以被父类类型的引用调用;
55.当父类引用指向子类对象的时候,子类重写了父类方法和属性,那么当访问属性的时候,访问是谁的属性?调用方法时,调用的是谁的方法?
子类重写了父类方法和属性,访问的是父类的属性,调用的是子类的方法

56.Super与this表示什么?
this:表示当前对象
super:表示当前类的父类对象
this():当前类的无参构造方法,也可以指定有参的如:this(a)
super():直接父类的无参构造方法,也可以指定有参的如:super(a)

57.抽象的关键字是什么?
Abstract

58.抽象类必须要有抽象方法吗
不是必须。抽象类可以没有抽象方法。
其实这个问题非常明白,用abstract修饰的类就是抽象类,并不是说抽象类中必须有抽象方法,即使一个类中的方法全部实现过,也可以用abstract修饰为抽象类,所以抽象类不一定都有抽象方法。
59.如果一个类中有抽象方法,那么这个一定是抽象类?
包含抽象方法的类一定是抽象类

60.抽象类可以使用final修饰吗?
不可以。定义抽象类就是让其他继承的,而final修饰类表示该类不能被继承,与抽象类的理念违背了
final是java中的修饰符,可以修饰类、变量、参数、方法和属性不可以休书接口和抽象类
61.普通类与抽象类有什么区别?
普通类不能包含抽象方法,抽象类可以包含抽象方法
抽象类不能直接实例化,普通类可以直接实例化
62.什么是接口?
接口就是某个事物对外提供的一些功能的声明,是一种特殊的java类

63.JAVA为什么需要接口?
接口弥补了java单继承的缺点
一个类只能继承一个父类,但是可以继承N个接口
接口的目的是指明相关或者不相关类的多个对象的共同行为,跟抽象类很相似,可以说接口是更加抽象的抽象类。
接口体现了程序设计的多态和高内聚低耦合的设计思想。
64.接口有什么特点?
接口中声明全是public static final修饰的常量
接口中所有方法都是抽象方法
接口是没有构造方法的
接口也不能直接实例化
接口可以多继承
65.接口与抽象类有什么区别?
抽象类有构造方法,接口没有构造方法
抽象类只能单继承,接口可以多继承
抽象类可以有普通方法,接口中的所有方法都是抽象方法
接口的属性都是public static final修饰的,而抽象的不是
66.Java中异常分为哪两种?
编译时异常
运行时异常
67.说几个常见的编译时异常类?
NullPointerException:空指针异常
ArrayIndexOutOfBoundsException:数组下标越界
NumberFormatException:数字转换异常
IllegalArgumentException:参数不匹配异常
InstantiationException:对象初始化异常
ArithmeticException:算术异常
68.异常的处理机制有几种?
异常捕捉:try…catch…finally,异常抛出:throws。

69.如何自定义一个异常
继承一个异常类,通常是RumtimeException或者Exception

70.在异常捕捉时,如果发生异常,那么try.catch.finally块外的return语句会执行吗?
会执行,如果有finally,在finally之后被执行,如果没有finally,在catch之后被执行

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值