欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

java对象转型实例分析

程序员文章站 2024-02-29 11:17:40
本文实例讲述了java对象转型的概念,分享给大家供大家参考。具体方法如下: 对象转型(casting)注意事项如下: 1、一个基类的引用类型变量可以“指向”其子类的对象...

本文实例讲述了java对象转型的概念,分享给大家供大家参考。具体方法如下:

对象转型(casting)注意事项如下:

1、一个基类的引用类型变量可以“指向”其子类的对象。

2、一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。

3、可以使用 引用变量 instanceof 类名 来判断该引用型变量所“指向”的对象是否属于该类或该类的子类。

4、子类的对象可以当做基类的对象来使用称作向上转型(upcasting),反之成为向下转型(downcasting)。

具体实现代码如下:

public class testcasting{
  public static void main(string args[]){
    animal animal = new animal("name");
    cat cat = new cat("catname","bluecolor");
    dog dog = new dog("dogname","yellowcolor");
    
    system.out.println(animal instanceof animal);
    system.out.println(cat instanceof animal);
    system.out.println(dog instanceof animal);
    //system.out.println(animal instanceof cat);  //error
    
    animal = new dog("doganimal","dogcolor");
    system.out.println(animal.name);
    //system.out.println(animal.forcolor); //error
    system.out.println(animal instanceof animal);
    system.out.println(animal instanceof dog);
    dog d1 = (dog)animal;
    system.out.println(d1.forcolor); 
  }
}
class animal{
  public string name;
  public animal(string name){   
    this.name = name;
  }
}
class cat extends animal{
  public string eyecolor;
  public cat(string name, string eyecolor){
    super(name);
    this.eyecolor = eyecolor;
  }
}

class dog extends animal{
  public string forcolor;
  public dog(string name, string forcolor){
    super(name);
    this.forcolor = forcolor;
  }
}

运行结果如下图所示:

java对象转型实例分析

希望本文所述对大家的java程序设计有所帮助