【Java基础】继承 多态 接口 异常 面试场问题

继承

继承为了重用父类的代码,两个类存在is-a(是一种)关系时,可以使用继承,达到代码复用(优点),提高效率
例:猫狗都是动物,都有毛色,习性等特征,可以将其封装到父类anminal

java中是否可以多继承?

答:不可以。

为什么不能多继承?

答:(菱形继承)反推
假设存在多继承,A类派生B,C , 则B包含自己的内容和继承过来的内容 a,b ,C同 a,c;如果多继承存在 D继承B和C,则D中会包含a,b a ,c 此时a被复制两份 同一个作用域中,不能出现两份相同的
所以只能单一继承。

方法重载和方法重写的区别?

重载:同一个类 根据类型区别方法 (方法名相同, 参数列表不同)
重写:父子类中(子类重新实现父类的方法)不在同一 个类,方法名,参数列表都相同。
(重写)修饰符:子类方法修饰符的权限>=父类方法修饰符

intern()

在这里插入图片描述
比较是否在相同的位置取值?
intern方法使得对象不从new取值,而在常量池中取值 所以等于

多态(重点)

什么是多态?

多态是对同一个行为具有多个不同的表现形式或者形态
例:sleep () 对于不同对象有不同的实现方式

对多态的理解?

静多态:
方法重载 编译器多态 add(int[] arr),add(long []arr)
动多态:
运行时多态
条件:继承,方法重写,向上造型

动态绑定的实现原理?

例:Animal a=new Cat();
a.eat();具体是猫在吃饭
在这里插入图片描述
实际就是地址覆盖 ,子类的方法覆盖了父类的方法

接口和抽象类

接口和抽象类的区别?

使用场景:接口-》类与类之间需要有特定的接口进行协调,而不在乎实现方式
例: 比如ArrayList和LinkedList都有add方法,就可以提供一个接口,提供统一函数名

抽象类-》在既需要统一的接口又需要实例变量或者方法实现

区别:
1、接口-》实现
抽象类-》需要被子类继承使用 extends
2、接口:抽象方法声明(public abstract) ,常量(public static final int a=20;)
抽象类:可以包含方法声明或者方法体的实现,及成员变量常量 及抽象方法

共同点:不能实例化对象

泛型

异常

谈一谈对异常五个关键字的理解?

try :将可能发生的异常放到try块中
不能过细划分 前面语句发生异常 后面不会被执行。
catch :捕获异常
finally :只能和一个finally进行匹配,finally块必定会被执行到 例:io关闭文件
throw:扔异常对象
throws:扔异常类

return和System.exit()

在这里插入图片描述
如果是return ,从finally中退出
如果是System ,从try中直接退出当前进程

谈一谈你对异常的理解?

1)继承结构:
Object:——Throwable——(Error ,Exception(RuntimeException,编译器异常))
2)五个关键字使用注意点:

见过的异常?

空指针
数组下标越界
栈溢出
中断异常

sql相关的异常……

OOM

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值