JAVA相关
方法重写
重写(override)规则:
- 参数列表必须完全与被重写方法相同
- 返回类型必须完全与被重写的返回类型相同
- 访问权限不能比父类中被重写的访问权限更低。例如:如果父类的一个方法被声明为public,name子类中重写该方法就不能声明为protected
- 父类的成员方法只能被他的子类重写
- 声明为static和private的方法不能被重写,但是能够被再次声明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18public class Demo1{
public stsic void main(String[] args){
Student s = new Student();
s.say();
}
}
class Person{
public void say(){
System.out println("锄禾日当午,汗滴禾下土")
}
}
class Student extends Person{
public void say(){
System.out.println("床前明月光");
}
}
注意:面试题:Java中重写(override)和重载(overland)的区别
- 重写是发生在子父类中的操作
- 重载是一个类里面参数列表的长度、参数类型和参数类型顺序不同(分为构造方法重载和方法重载)
a. 发生的位置
重载:一个类中
重写:子父类中
b. 参数列表限制
重载:必须不同
重写:必须相同
c. 返回值类型:
重载:与返回值类型无关
重写:返回值类型必须一致
d. 访问权限:
重载:与访问权限无关
重写: 子的方法权限 必须不能小于 父的方法权限
e.异常(bug)处理:
重载:与异常无关
重写:可以减少或删除(异常范围可以更小更精准,但是不能抛出新的异常)
异常处理
情况描述:当程序出现bug时,Java虚拟机发现异常,虚拟机就会new出来一个新的对象,用类似返回的方式返回错误类型和异常原因,同时中断程序。
处理异常
对异常进行处理,捕获异常,避免异常返回使程序中断
1 |
|
catch语句相当于if语句
如果满足异常类型,则实现代码块里面的操作
易错警告
eg1.
1 |
|
eg2.
1 |
|
eg3.
1 |
|
唯一一种在代码中使finally不执行的代码就是上述eg3.
System.exit(0);
总结:finally问题总绕不开两点:
1.finally必然执行
2.return的时机以及备份的具体内容
final关键字
final用于修饰属性、变量
变量成为了常量,无法对其再次进行赋值
final修饰的局部变量,只能赋值一次(可以先声明后赋值)
final修饰的是成员属性,必须在声明时赋值
全局常量(public static final)
常量的命名规范:
由一个或多个单词组成,单词与单词之间必须使用下划线隔开,单词中所有字母大写
例如:SQL_INSET
final用于修饰类
final修饰的类,不可以被继承
final用于修饰方法
final修饰的方法,不能被子类重写
全局常量(public static final)