计算机二级:Java的强制类型转换
来源:优易学  2011-8-21 18:21:23   【优易学:中国教育考试门户网】   资料下载   IT书店

  今晚项目的几个同学有次关于Java强制类型转换的讨论,当时脑袋瓜浑浑的,现在理一下思路.
  用个例子:
  view plaincopy to clipboardprint?
  public class animal
  {
  private int age;
  private String color;
  public void eat() {}
  }
  public class animal
  {
  private int age;
  private String color;
  public void eat() {}
  }
  view plaincopy to clipboardprint?
  public class dog extends animal
  {
  private String onwer;
  public void bark(){}
  }
  public class dog extends animal
  {
  private String onwer;
  public void bark(){}
  }
  以上面animal和dog为例,dog继承animal的属性和方法并扩展之,在animal的基础上增加了owner的属性和bark()方法.在这个例子里,基类是animal,dog扩展自animal,是其子类.
  下面说一下强制转换. 我们知道,狗是一种动物,而动物就不一定会是狗. 所以, animal a = (animal) dog这种转换是正确的,因为狗是一种动物,狗当然能转换为动物. 但动物不能硬硬转换为狗,也就是说 dog d = (dog) animal这样是不行的,dog含有扩展属性和方法,这在animal中不含有. 这就说,Java的强制转换,是从子类可以转换为基类,但基类不含有子类的扩展属性所以不能强制转换为子类.
 再举一个例子:

  view plaincopy to clipboardprint?
  class human{int sum;}
  class man extends human
  {
  double sum;

[1] [2] 下一页

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训