对象类型转换
来源:互联网 发布:房地产网络推广 编辑:程序博客网 时间:2024/05/29 19:39
import java.util.ArrayList;
class A1{
public void fun1() {
System.out.println("方法一");
}
public void fun2() {
System.out.println("方法2");
}
}
class B1 extends A1{
public void fun1(){
System.out.println("重写A1的方法1");
}
public void fun2(){
System.out.println("重写A1的方法2");
}
}
public class Test {
public static void main(String[] args) {
B1 b1 = new B1();
//callA(b1);
A1 a = b1;//子类能自动的转换成父类
// callA(a);
A1 a1 = new A1();
callA(a1);
}
//编译器自动将 类B1转换成A1类型
public static void callA(A1 a1){
/* a1.fun1(); //其实他还是调用的b1中的方法 这就是多态 这里只要传入A1的子类就行 以不变应万变 达到代码 的复用性 可扩充性 可维护性 模块化可插拔
a1.fun2();*/
B1 b1 = (B1) a1;//强制类型转换
b1.fun1();
b1.fun2();
/*B1 b1 = a1;
b1.fun1();
b1.fun2(); 这样是错误的*/
}
class A1{
public void fun1() {
System.out.println("方法一");
}
public void fun2() {
System.out.println("方法2");
}
}
class B1 extends A1{
public void fun1(){
System.out.println("重写A1的方法1");
}
public void fun2(){
System.out.println("重写A1的方法2");
}
}
public class Test {
public static void main(String[] args) {
B1 b1 = new B1();
//callA(b1);
A1 a = b1;//子类能自动的转换成父类
// callA(a);
A1 a1 = new A1();
callA(a1);
}
//编译器自动将 类B1转换成A1类型
public static void callA(A1 a1){
/* a1.fun1(); //其实他还是调用的b1中的方法 这就是多态 这里只要传入A1的子类就行 以不变应万变 达到代码 的复用性 可扩充性 可维护性 模块化可插拔
a1.fun2();*/
B1 b1 = (B1) a1;//强制类型转换
b1.fun1();
b1.fun2();
/*B1 b1 = a1;
b1.fun1();
b1.fun2(); 这样是错误的*/
}
}
打印结果 :
Exception in thread "main" java.lang.ClassCastException: A1 cannot be cast to B1
at Test.callA(Test.java:40)
at Test.main(Test.java:32)
打印结果 :
Exception in thread "main" java.lang.ClassCastException: A1 cannot be cast to B1
at Test.callA(Test.java:40)
at Test.main(Test.java:32)
0 0
- DLL对象类型转换
- 对象的类型转换
- 对象类型转换
- C++对象类型转换
- 多态&&对象类型转换
- Swift 对象类型转换
- swift 对象类型转换
- 对象类型的转换
- java对象类型转换
- 对象类型转换
- C# 对象类型转换
- 对象类型转换
- 对象类型的转换
- 对象类型转换的总结
- C++内置类型对象转换
- java中对象类型转换
- java的对象类型转换
- Qt中的对象类型转换
- PDO属性、方法
- 提交刷新页面
- 15.4节练习
- git之 .gitignore的配置和使用
- java压缩文件
- 对象类型转换
- 数据库范式(1 2 3 BCNF范式)详解
- RecyclerView with Header&Footer (只是记录,没有详细步骤)
- 本地如何搭建IPv6环境
- 大型网站的架构设计图分享
- 编程珠玑第二章问题B: n元一维向量旋转问题之java实现
- Android冷知识(2)常驻服务
- 一些C语言期末作业 题目以及自己做的答案。
- 【操作系统】CentOS 7 防火墙配置