`
hellojim
  • 浏览: 53318 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

子类与父类之间的转换

    博客分类:
  • JAVA
阅读更多
class A {
	
	public void fun1() {
		System.out.println(" A fun1 is calling!!!");
	}
	
	public void fun2() {
		fun1();	
	}
	
}

class B extends A{
	
	public void fun1() {
		System.out.println(" B fun1 is calling!!!");
	}	
	
	public void fun3() {
		System.out.println(" B fun3 is calling!!!");	
	}
	
}

class Test {
	
	public static void main(String[] args) {
			A a = new A();
			callA(a);
			
			//子类可以隐式转换成父类,但父类不能隐式转换成子类(如果非要转可以采用强制类型转换)
			//象下面
			A c = new B();   //象这样一句是没有问题的
			//B d = new A(); //象这样一句编译时就会报 "不兼容的类型" 错误
			B e = (B)new A(); //象这样一句采用了强制类型转换虽编译时不会报错,但在运行时就会报 
			                  //"java.lang.ClassCastException" 错误
	}
	public static void callA(A a) {
		
		B b = null;
		if(a instanceof B) {
			b = (B)a;	
			b.fun1();
			b.fun2();
			b.fun3();	
		}else {
			a.fun1();
			a.fun2();	
		}
	}
}

 

分享到:
评论

相关推荐

    C#子类舍弃属性转换为父类UtilSubToBase.cs

    利用C#反射将子类舍弃多余的属性转换为父类,用途比较少。

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

    2. **构造器与初始化**:子类对象在创建时会先调用父类的构造器,确保父类的状态得到正确初始化,然后执行子类自己的构造逻辑。 3. **变量隐藏**:如果子类和父类有同名的实例变量,子类变量会“隐藏”父类变量。...

    父类赋值给子类

    可以利用序列化将父类对象转换为字节数组,然后将这个字节数组反序列化为子类对象。这种方法适用于复杂的对象结构,但效率较低,且需要实现 `ISerializable` 接口。 4. **属性映射**: 使用辅助工具(如 ...

    java中的继承(子类调用父类构造方法还不懂).doc

    - **定义**:当子类中的方法与父类中的方法具有相同的方法名、参数列表和返回类型时,称子类方法重写了父类的方法。 - **规则**: - 方法名、参数列表和返回类型必须完全相同。 - 子类方法的访问级别不能小于父类...

    [Java] 对象类型转换和运算符 instanceof 学习笔记 [#子类转父类 #父类转子类 #对象和引用的区别]

    类型转换在Java中分为两种:子类到父类的转换(向上转型)和父类到子类的转换(向下转型)。向上转型是自动的,安全的,因为它允许我们用子类对象的地方使用父类引用,这在多态性中十分常见。例如,`Animal a = new ...

    将子类引用赋给父类对象时,java虚拟主机并没有将那些非继承成员丢弃

    然而,这并不意味着在转换过程中会丢失子类的非继承成员,即那些在父类中不存在的方法或属性。Java虚拟机(JVM)在内存中以特定方式存储这些成员,使得它们在需要时依然可以访问。 首先,理解Java中的类继承关系。...

    论JAVA继承机制中父类与子类的关系

    本文深入探讨了Java语言中的继承机制,并重点分析了父类与子类之间的关系。文章围绕子类继承父类成员的过程、成员变量及方法的赋值、重写、覆盖等问题展开讨论,旨在帮助读者更好地理解Java继承中的重点与难点。 ##...

    JAVA 多态操作----父类与子类转换问题实例分析

    JAVA 多态操作----父类与子类转换问题实例分析 JAVA 多态操作中的父类与子类转换问题是 Java 编程语言中的一种重要概念。多态操作允许我们在编程中使用父类类型的引用来指向子类类型的对象,这种机制使得我们可以...

    Java中父类和子类之间的转换操作示例

    Java中父类和子类之间的转换操作示例 Java 中父类和子类之间的转换操作是面向对象编程(OOP)中一个重要的概念。它允许开发者在不同的类之间进行类型转换,以便更好地实现继承和多态性。在 Java 中,父类和子类之间...

    父类引用指向子类对象

    ### 父类引用指向子类对象 在面向对象编程中,“父类引用指向子类对象”是一个重要的概念,尤其在Java等支持继承的语言中应用广泛。这一机制允许使用父类类型的引用变量来引用子类的对象,从而实现多态性。 #### ...

    java多态性详解——父类引用子类对象

    本文将深入探讨Java中的多态性,特别是“父类引用子类对象”的概念,以及这一特性如何在实际编码中体现。 ### 多态性概述 多态性主要通过方法的重写(Overriding)、重载(Overloading)和动态绑定(Dynamic Binding)来...

    C++中4种强制类型转换的区别总结

    前言 使用标准C++的类型转换...如子类和父类之间的多态类型转换。 reinterpreter_cast,仅仅重新解释类型,但没有进行二进制的转换。 一、static_cast 用法:static_cast (expression) 该运算符把expression转换为ty

    cpp代码-C++:类02__多继承(子类对象可以转换成父类对象)

    标题"cpp代码-C++:类02__多继承(子类对象可以转换成父类对象)"明确指出我们将关注的是C++中的多继承,并且会讨论如何将子类对象转换为父类对象,这是多继承的一个关键特性,被称为向上转型。 在C++中,多继承的...

    Java、C++中子类对父类函数覆盖的可访问性缩小的区别介绍

    在 Java 和 C++ 中,这个过程通常是通过定义与父类相同名称和参数列表的方法来完成的。 在 Java 中,当子类覆盖父类的函数时,如果试图降低函数的可访问性,如将 public 更改为 private 或 protected,编译器会报错...

    继承与接口的含义以及其子类相关的含义

    继承是类之间的一种关系,子类继承自父类,从而获取了父类的部分特性。这种关系模拟了现实世界中的遗传关系,使得子类可以重用和扩展父类的属性和方法。Java中的继承是单继承的,也就是说一个子类只能有一个直接父类...

    利用反射子父类赋值高效工具类案例extends_setvalue.zip

    总之,这个案例提供了一种高效的方法,利用Java反射机制在子类和父类之间进行字段赋值,减少了手动编写赋值代码的需求,提高了代码的可维护性和性能,尤其是在处理大量数据持久化或查询结果映射时。通过深入理解并...

    ChildClass.java

    ## Java 子类强转父类 父类引用指向子类对象时,没法调用子类特有的方法; 父类引用指向子类对象: ...java中子类强转父类,实际上...只有父类对象本身就是用子类new出来的时候, 才可以在将来被强制转换为子类对象.

    深入分析java中的类型转换

    - **小→大**: 引用数据类型之间的转换,例如子类到父类的转换。 - **转换示例**: 在Java中,可以通过多态来实现引用数据类型的隐式转换,例如将子类对象赋值给父类引用变量。 #### 强制手动类型转换 强制手动类型...

    java类的继承详解说明

    多态是指子类可以继承父类的方法,并且可以将子类的引用转换为父类的引用,这样可以实现多种类型的对象使用同一个方法。多态的实现原理是强制类型转换,将子类的引用强制转换为父类的引用。 继承与组合 继承和组合...

Global site tag (gtag.js) - Google Analytics