多态
-
多态是方法的多态,属性没有多态
-
父类和子类,有联系 ClassCastException!联系异常
-
存在条件:有继承关系。方法有重写。
instance of判断类型是否相似
sout(a instance Student)
强制转换对象类型:
Person obj = new Student();
((Student)obj).go();将person转换成student ,然后用student的方法。
父类转换子类需要强制 子类上升父类不需要。转换以后不可再用子类方法。
匿名代码块在类中只执行一次。
静态Static > 匿名代码块 > 构造方法(速度)
被final 修饰的类不可再被继承
抽象类abstract
抽象类的所有方法,继承者必须要实现父类的方法
接口
接口中的所有定义都是抽象的,定义方法的时候可以省去public abstract
定义接口后,类想使用接口就用到 implements,implements可以实现多个接口
public class UserServiceImpl implements UserService{
//如果接口定义了方法,则本类必须重写接口中的方法
}
内部类
类中有类
方法类
类中的方法里定义类
异常机制
exception
捕获异常
int a =1;
int b = 0;
try{
System.out.println(a/b);
}catch(ArithmeticException e){//这里的catch可以并列写多个,按照异常等级先小后大
sout("0不能当做除数");
}finally{
SOUT("这里写一些补救措施")
对代码进行包裹 ctrl+alt+T
抛出异常
int a =1;
int b = 0;
try{
if(b==0){
throw new ArithmeticException();
}
}
自定义异常
public class MyException extends Exception {
}