一、多态引用类型转换
dog是子类,animal是父类
dog dog2 =(dog) animal;//小括号+子类类型强制转换
但是这样存在风险,如果本质不可以转换,但是程序员又人为的转换,那么编译时候不出现错误,但是run以后会报错
那么使用instanceof来验证
if(animal instanceof Cat) {
Cat cat = (Cat)animal;
}else {
System.out.println("无法进行类型转换");
}
二、抽象类
a、不关注子类怎样去实现的,但是要约束它
比如Shape的图形,要有边长和面积,无论创建Rectangle还是Circle
三、接口
接口是一个规范,是约束类必须有什么样的方法,但不关心怎么样去实现
注:接口通常是用来继承和被实现的,修饰符用public,不能使用private和protected
[修饰符]interface 接口名[extends 父接口1,接口2]
{
多个常量,用public static final
多个抽象方法 public abstract
}
四、UML