`
i拾贝
  • 浏览: 29952 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

java对象转型

    博客分类:
  • java
阅读更多

java对象转型

TestCasting.java

//对象转型——实例1
class Animal {
	public String name;//名字
	
	Animal(String name) {
		this.name = name;
	}
}

class Cat extends Animal {
	public String eyeColor;//眼睛的颜色
	
	Cat(String name, String eyeColor) {
		super(name);
		this.eyeColor = eyeColor;
	}	
}

class Dog extends Animal{
	public String furColor;//毛的颜色
	
	Dog(String name, String furColor) {
		super(name);
		this.furColor = furColor;
	}
}

public class TestCasting {
	public static void main(String[] args) {
		Animal a = new Animal("name");
		Cat c = new Cat("CatName","bule");
		Dog d = new Dog("DogName","black");
		
		//instanceof用来判断内存中实际对象A是不是B类型
		System.out.println(a instanceof Animal);//a是Ainmal吗?true
		System.out.println(c instanceof Animal);//true
		System.out.println(d instanceof Animal);//true		
		System.out.println(a instanceof Cat);//a是Cat吗?false
		
		a = new Dog("大黄","黄色");
		System.out.println(a.name);//大黄
		//System.out.println(a.furColor);//error
		System.out.println(a instanceof Animal);//a是Ainmal吗?true
		System.out.println(a instanceof Dog);//a是Dog吗?true
		
		Dog d1 = (Dog)a;//要加强制转换符
		System.out.println(d.furColor);//black
		
		/***************************************************************/
		TestCasting test = new TestCasting();
		test.f(a);	//name: 大黄 黄色 fur
		test.f(c);	//name: CatName bule eyes
		test.f(d);	//name: DogName black fur
	
	}
	
	//面向对象,可扩展性好
	public void f(Animal a) {
		System.out.print(" name: " + a.name);
		if(a instanceof Cat) {
			Cat cat = (Cat)a;			
			System.out.println(" " + cat.eyeColor + " eyes");
		} else if(a instanceof Dog){
			Dog dog = (Dog)a;
			System.out.println(" " + dog.furColor + " fur");
		}
	}
}

 

分享到:
评论

相关推荐

    java对象转型实例分析

    在Java编程语言中,对象转型是一种重要的概念,它允许我们改变对象的类型,以便我们可以以不同的方式使用同一个对象。在上述实例中,我们探讨了两种主要的转型方式:向上转型(upcasting)和向下转型(downcasting)...

    java向上转型向下转型

    Java 向上转型与向下转型 Java 转型是 Java 编程中的一种非常重要的概念,主要包括向上转型和向下转型两种。向上转型是指将子类对象转换为父类对象,而向下转型是指将父类对象转换为子类对象。 向上转型...

    Java 中的上转型对象 使用

    在Java编程语言中,上转型对象(Upcasting)是一种面向对象编程的概念,它涉及到将子类对象赋值给父类类型的引用。这种做法允许我们使用父类引用来调用子类对象的方法,从而实现多态性。在Java中,所有类都隐式地...

    详细讲述Java中的对象转型

    Java 对象转型详解 Java 中的对象转型是指在编程中将一个对象转换为另一个对象的过程。对象转型可以分为两种:向上转型和向下转型。 向上转型是指将子类对象转换为父类对象。公式为:Father f = new Son();其中,...

    java 转型运算符的资源

    总之,Java的转型运算符是编程过程中不可或缺的一部分,它们允许我们灵活地在不同数据类型之间操作,并在面向对象编程中实现多态性。理解和熟练运用这些转换技巧是成为一名合格的Java开发者的必备技能。

    java中对象转型多态抽象类接口笔记.doc

    ### Java中的对象转型与多态 #### 一、对象转型 在Java中,对象转型(Casting)是指将一个对象的引用从一个类转换到另一个类的过程。这通常发生在类的继承关系中。 ##### 向上转型(Upcasting) - **定义**:将...

    使用json-lib将java对象转换成json字符串

    - `ezmorph-1.0.6.jar`:提供对象转型工具,帮助进行非标准类型到标准类型的转换,对于JSON的复杂数据类型转换很有用。 4. **转换过程**: - 对于一个Java对象,例如一个User类的实例,首先需要确保该类的属性都...

    java 子类对象赋值给父类对象的使用

    当我们创建一个子类对象并将其赋值给父类引用时,这种行为被称为向上转型(Upcasting)。这一过程是自动且安全的,因为子类对象包含了父类的所有属性和方法。下面我们将深入探讨这个主题,包括它的原理、示例代码...

    java > JSON 使用

    `ezmorph-1.0.2.jar`则是一个Java对象转型库,可以用于将Java对象转换成其他形式,这也可能在JSON处理中发挥作用。 在实际使用`json-lib`进行JSON操作时,你可以通过`net.sf.json.JSONObject`和`...

    Java上转型和下转型对象

    Java 上转型和下转型对象 Java 中的上转型和下转型对象是对象之间的类型转换关系,用于描述父类和子类之间的继承关系。在 Java 中,我们可以通过上转型和下转型来实现对象之间的类型转换。 上转型对象 上转型对象...

    java向上转型和向下转型.doc

    在Java编程语言中,向上转型和向下转型是对象多态性的关键组成部分,它们涉及到对象的类型转换,使得程序设计更加灵活且易于维护。下面将详细解释这两种转型的概念、原理及应用。 ### 向上转型 向上转型指的是将一...

    Java实现运用上转型对象抽象方法计算圆形或圆锥的面积、周长等成员变量

    Java实现运用上转型以及对象抽象方法计算圆形或圆锥的面积、周长等成员变量

    JSON的JAR包和所依赖的JAR包

    5. **ezmorph-1.0.6.jar**:EZMorph库是一个用于Java对象转型的工具,它可以将一个对象转换为另一种对象。在JSON处理中,EZMorph可能用于在不同数据类型之间进行转换,以适应JSON的数据模型。 这些JAR包的组合使用...

    java面向对象案例源码及PPT

    Java面向对象编程是一种强大的软件开发方法,它基于“对象”的概念,强调数据和操作数据的方法紧密结合。这个资源包“java面向对象案例源码及PPT”显然是为了帮助初级Java学习者深入理解面向对象编程的基本原理和...

    使用json的jar包

    5. **`ezmorph-1.0.6.jar`**:EZMorph库是一个用于Java对象转型的库,它使得对象转型变得更简单。在处理JSON时,EZMorph可以用于在不同数据类型之间转换JSON数据,例如将JSON数字转换为字符串,或者将JSON字符串转换...

    Java面向对象程序设计课件

    Java面向对象程序设计是计算机科学中的一个重要领域,尤其对于初学者和有志于软件开发的人来说,它是必须掌握的基础。这份“Java面向对象程序设计课件”可能是为了帮助大学生理解和掌握这个主题而精心编排的。它适合...

    上转型对象体现多态

    本文将深入探讨Java中的上转型对象如何体现多态性,并进一步分析面向对象的设计原则。 ### 多态的概念 多态(Polymorphism)是指一个接口可以被多个类实现,或者一个抽象类可以有多个子类继承,并且这些子类可以...

    Java面向对象程序设计(源代码)

    通过向上转型,子类对象可以被视为父类对象,这使得我们可以在不关心具体类型的情况下调用方法,提高了代码的灵活性和可扩展性。 4. **类与对象**:类是创建对象的模板,描述了对象的状态(属性)和行为(方法)。...

    java面向对象基础、高级pdf讲义

    Java通过方法重写(override)和向上转型(upcasting)实现多态性。 5. 构造器:构造器用于初始化新创建的对象,与类名相同且无返回值。Java允许重载构造器以满足不同初始化需求。 二、面向对象高级特性 6. 接口...

    Java4Android 21_对象的转型

    主要讲述了JAVA中对象的转型的相关问题。

Global site tag (gtag.js) - Google Analytics