Java面向对象作业-用接口方式测试向下转型
根据视频的里实例 我们直接修改Test2测试方法:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
package
com.java1234.chap03.sec13;
public
class
Test2 {
public
static
void
main(String[] args) {
People p1=
new
Student();
p1.say();
Student student=(Student) p1;
student.say();
Teacher teacher=(Teacher) p1;
teacher.say();
}
}
|
运行报错:
我是学生
我是学生
Exception in thread "main" java.lang.ClassCastException: com.java1234.chap03.sec13.Student cannot be cast to com.java1234.chap03.sec13.Teacher
at com.java1234.chap03.sec13.Test2.main(Test2.java:12)
类型转换异常 向下转型是不安全的,必须知道具体实现类;