Java之对象转型
2012-11-13 19:55
246 查看
这一次谈一谈Java中对象转型的问题,在Java中引入继承机制就存在这一转换的问题。在Java中对象转型注意以下四点:
1.一个基类的引用类型变量可以指向其子类的对象;
2.一个基类的引用变量不能访问其子类对象新增加的成员(属性和方法);
3.可以使用 对象名 instanceof 类名 来判断该引用型变量所指向的对象是否属于该类或该类的子类;
4.子类的对象可以当做基类的对象来使用称作向上转型;反之称作向下转型;
下面用一个简单的Java程序来说明对象转型这个问题。(对象转型可以保证程序的可扩展性)
源程序:
1.一个基类的引用类型变量可以指向其子类的对象;
2.一个基类的引用变量不能访问其子类对象新增加的成员(属性和方法);
3.可以使用 对象名 instanceof 类名 来判断该引用型变量所指向的对象是否属于该类或该类的子类;
4.子类的对象可以当做基类的对象来使用称作向上转型;反之称作向下转型;
下面用一个简单的Java程序来说明对象转型这个问题。(对象转型可以保证程序的可扩展性)
源程序:
class Animal{ // 定义动物类 String name; Animal(String name) { this.name = name; } } class Dog extends Animal{ // 定义狗类,继承自动物类 String furcolor; Dog(String name,String furcolor) { super(name); this.furcolor = furcolor; } } class Cat extends Animal{ // 定义猫类,继承自动物类 String eyecolor; Cat(String name, String eyecolor){ super(name); this.eyecolor = eyecolor; } } public class datatest { // 测试类 public static void main(String[] args) { datatest test = new datatest(); // 定义一个测试类 Animal a = new Animal("animal"); // 定义一个动物类 Dog d = new Dog("bigyellow", "yellow"); // 定义一个狗类 Cat c = new Cat("Caddy", "blue"); // 定义一个猫类 // 3次调用测试类的f方法,其中参数分别为动物类、狗类、猫类的对象 test.f(a); test.f(d); test.f(c); } public void f(Animal a){ System.out.println("name: " + a.name); if(a instanceof Dog){ Dog d = (Dog)a; System.out.println("furcolor: " + d.furcolor); } else if(a instanceof Cat){ Cat c = (Cat)a; System.out.println("eyecolor: " + c.eyecolor); } } }
相关文章推荐
- [Java][视频] 笔记-对象转型 和 动态绑定(多态)
- Java基础学习总结(4)——对象转型
- java例程练习(对象转型及instanceof关键字)
- JAVA基础-- 对象转型 (casting)
- [Java] 对象转型-02
- java面向对象基础(三):对象转型和多态
- Java——对象转型
- java多态的前置知识--对象转型
- 黑马程序员--Java学习12--继承与上转型对象
- java 对象向上转型&&向下转型
- 5.4-全栈Java笔记:面向对象进阶之对象的转型 | FINAL关键字 |抽象方法和抽象类
- java上转型和下转型对象的深入解析
- Java基础学习总结(4)——对象转型
- java基础----对象的上转型对象
- [Java] 对象转型-02
- Java基础之(九) 对象的转型
- Java中 对象的上转型对象
- Java对象转型
- 【JAVA基础知识总结】-JAVA对象转型(转)
- Java中上转型对象的详细解释