本文实例讲述了java对象转型的概念,分享给大家供大家参考。具体方法如下:
对象转型(casting)注意事项如下:
1、一个基类的引用类型变量可以“指向”其子类的对象。
2、一个基类的引用不可以访问其子类对象新增加的成员(属性和方法)。
3、可以使用 引用变量 instanceof 类名 来判断该引用型变量所“指向”的对象是否属于该类或该类的子类。
4、子类的对象可以当做基类的对象来使用称作向上转型(upcasting),反之成为向下转型(downcasting)。
具体实现代码如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
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程序设计有所帮助