java中强制类型转换问题
2016-06-30 19:45
295 查看
class A{
//属性和方法
}
class B extends A{
//独有的属性和方法
}
class C extends A{
//独有的属性和方法
}
public class D{
public A test{
if(){
B b= new B();
//给b设值
return b;
}else{
C c= new C();
//给c设值
return c;
}
}
有这样一个方法,在某些条件下返回B,某些条件下返回C,在设值的时候会发现很多属于父类A的方法都是重复的,这里就可以用到多态的处理。
public class D{
public A test{
A a=null;
if(){
a= new B();
//给b的独有值
return b;
}else{
a= new C();
//给c的都有值
return c;
}
//在这里设置A的值或调用A的方法
}
}
这样得到A以后,如果想要强转为B和C也是可以的,因为我们一开始创建的就是子类对象。
//属性和方法
}
class B extends A{
//独有的属性和方法
}
class C extends A{
//独有的属性和方法
}
public class D{
public A test{
if(){
B b= new B();
//给b设值
return b;
}else{
C c= new C();
//给c设值
return c;
}
}
有这样一个方法,在某些条件下返回B,某些条件下返回C,在设值的时候会发现很多属于父类A的方法都是重复的,这里就可以用到多态的处理。
public class D{
public A test{
A a=null;
if(){
a= new B();
//给b的独有值
return b;
}else{
a= new C();
//给c的都有值
return c;
}
//在这里设置A的值或调用A的方法
}
}
这样得到A以后,如果想要强转为B和C也是可以的,因为我们一开始创建的就是子类对象。
相关文章推荐
- PostgreSQL教程(三):表的继承和分区表详解
- C#与.net高级编程 C#的多态介绍
- C#中面向对象编程机制之多态学习笔记
- Lua面向对象之类和继承浅析
- 浅析Ruby中继承和消息的相关知识
- C#中的多态深入理解
- C#中多态、重载、重写区别分析
- 设计引导--一个鸭子游戏引发的设计理念(多态,继承,抽象,接口,策略者模式)
- C++实现不能被继承的类实例分析
- C# 面向对象三大特性:封装、继承、多态
- PHP类的封装与继承详解
- js继承 Base类的源码解析
- Javascript 面向对象 继承
- JavaScript 继承使用分析
- Javascript面向对象编程(二) 构造函数的继承
- Javascript中的几种继承方式对比分析
- javascript面向对象之Javascript 继承
- JavaScript 对象、函数和继承
- 封装与继承
- Java总结(九)——(线程模块 一(线程的创建(方法一)与启动,线程状态与生命周期,进程与线程))