1、数组有没有length()这个方法?String有没有length()这个方法?
数组没有length()方法 数组只有length属性,表示的是数组的长度
String有length()方法 返回的是字符串的长度
2、抽象类和接口有什么区别?
抽象类要被子类继承,接口要被类实现。
抽象类里的方法可以是抽象方法,也可以是普通方法
接口里的方法只能是抽象方法
接口里定义的变量只能是静态的常量
抽象类便于复用,接口便于代码维护
一个类只能继承一个直接的父类,但可以实现多个接口
3、重写和重载的区别?
在子类中重写父类的方法
方法名相同
参数列表相同
返回值类型相同或则是其子类
访问修饰符不能严于父类
抛出的异常不能大于父类
在同类中重载方法
方法名相同
参数列表不同 (参数类型,个数,顺序)
在同类中与返回值、访问修饰符无关。
4、请你写出你理解的Java面向对象的三大特性:
封装 作用提高数据安全性
1.将属性私有化 private
2.编写setter方法,对属性赋值
3.编写getter方法获取值
继承 作用减少相同代码,提高代码复用性
关键字 extends
满足is-a的关系
继承只能是 单根继承
以下不能被继承
父类的构造方法
private 修饰的内容
不同包下的 默认修饰符修饰的内容
多态 作用 可以提高代码的复用性
实现多态的三个要素
①编写具有继承关系的父类和子类
②子类重写父类方法
③使用父类的引用指向子类的对象(实例)
实现多态的两种形式
使用父类作为方法形参实现多态
使用父类作为方法返回值实现多态
语法:
父类名 父类引用 = new 子类类名();
如果想调用子类特有的方法,需要先判断是否为同一种类型,向下转型。
instanceof是Java中的二元运算符,左边是对象,右边是类;当对象是右边类或子类所创建对象时,返回true;否则,返回false。
5、写出异常的语法(throw和try):
语法
try{
//将可能出现异常的代码都放入try中
}catch(){
//在一段程序中catch可以有多个,来捕获异常类型,当出现了某种异常就会中断 异常代码后面的内容继而执行对应的catch中的内容
//需要注意的是 异常的范围需要从小到大写 范围小的异常放在上面,范围大的异常放在下面
}finally{
//在程序中一定会被执行的内容,除非是遇到了exit()方法
当程序中有return的时候,是会先执行finally中的内容,然后执行return。
}
throws Exception: 声明异常
方法名后声明, 将异常交给调用者去处理了,如果调用者不处理依然会出现异常,除非是使用 try catch
throw new Exception();抛出异常
自定义异常
声明一个类继承RuntimeException
重写有参无惨够造方法,最后调用