对象的类型转换P109

类作为一种应用数据类型,和基本数据类型的变量一样。不同类中存在对象与对象之间的类型转问题,对象的类型转换只能在  具有继承关系的

父类对象-----子类对象 之间进行

  子类通常比父类拥有更多的域和方法

class Human{                              // 父类Human的定义

  String name;

   int age;  

  char sex;  

  Human(String name,int age,char sex){

   this.name=name;

   this.age=age;

   this.sex=sex;

   }

   int getAge()   {    return age;    }

   }

 

class Worker extends Human{   

double salary;

   Worker(String name,int age,char sex ,double salary)

                 {    super(name,age,sex);  

                                  this.salary= salary;       }

   void addSalary(double sum)

{    salary+=sum;    }

}

public class TestCasting

{    public static void main(String []args)

          {      Worker a=new Worker("Mary",20,‘女‘,10000);

                        Human h=a;                                                                     //将Work类 对象    转换为 Human类 对象

//父类对象 《----- 子类对象        向上类型转                削弱了子类的功能

//普通类型  《 ------特殊类型             直接进行   安全的   

                System.out.println(h.name+"的年龄为:"+h.getAge());  

          }

 }

时间: 2024-10-11 06:08:53

对象的类型转换P109的相关文章

Java多态对象的类型转换和动态绑定

Java多态对象的类型转换这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常. 在继承链中,我们将子类向父类转换称为"向上转型",将父类向子类转换称为"向下转型". 很多时候,我们会将变量定义为父类的类型,却引用子类的对象,这个过程就是向上转型.程序运行时通过动态绑定来实现对子类方法的调用,也就是多态性. 然而有些时候为

8.Java多态对象的类型转换

这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常. 在继承链中,我们将子类向父类转换称为“向上转型”,将父类向子类转换称为“向下转型”. 很多时候,我们会将变量定义为父类的类型,却引用子类的对象,这个过程就是向上转型.程序运行时通过动态绑定来实现对子类方法的调用,也就是多态性. 然而有些时候为了完成某些父类没有的功能,我们需要将向上转型后的子类对象

Java知多少(33)多态对象的类型转换

这里所说的对象类型转换,是指存在继承关系的对象,不是任意类型的对象.当对不存在继承关系的对象进行强制类型转换时,java 运行时将抛出 java.lang.ClassCastException 异常. 在继承链中,我们将子类向父类转换称为“向上转型”,将父类向子类转换称为“向下转型”. 很多时候,我们会将变量定义为父类的类型,却引用子类的对象,这个过程就是向上转型.程序运行时通过动态绑定来实现对子类方法的调用,也就是多态性. 然而有些时候为了完成某些父类没有的功能,我们需要将向上转型后的子类对象

java 父类对象 和 子类对象 的类型转换

/** * 父类对象 和 子类对象 的类型转换 */ public class TypeCast{ public static void main(String[] args){ Employee[] staff = new Employee[3]; staff[0] = new Employee(); System.out.println(staff[0]); System.out.println(staff[1]); //Manager boss0 = staff[0]; //java.la

反射给对象赋值——类型转换

文章转自: http://blog.csdn.net/xiaohan2826/article/details/8536074 反射给对象赋值遇到的问题--类型转换 发布时间:2012-10-25 10:49浏览次数:225 给一个对象属性赋值可以通过PropertyInfo.SetValue()方式进行赋值,但要注意值的类型要与属性保持一致. 创建对象实例的两种方法: 1. 1 var obj = Assembly.Load("AssemblyName").CreateInstance

使用stringstream对象简化类型转换

C++标准库中的<sstream>提供了比ANSI C的<stdio.h>更高级的一些功能,即单纯性.类型安全和可扩展性.在本文中,我将展示怎样使用这些库来实现安全和自动的类型转换. 为什么要学习 如果你已习惯了<stdio.h>风格的转换,也许你首先会问:为什么要花额外的精力来学习基于<sstream>的类型转换呢?也许对下面一个简单的例子的回顾能够说服你.假设你想用sprintf()函数将一个变量从int类型转换到字符串类型.为了正确地完成这个任务,你必

C# 4 dynamic 动态对象 动态类型转换

public class User { //使用省缺参数,一般不需要再为多态做各种静态重载了 public User( string name = "anonym", string type = "user" ) { this.UserName = name; this.UserType = type; } public UserName { private set; get; } public UserType { private set; get; } } Us

springmvc关于前台日期作为实体类对象参数类型转换错误

页面报错: 后台错误: Field error in object 'user' on field 'birthday': rejected value [2013-06-24]; codes [typeMismatch.user.birthday,typeMismatch.birthday,typeMismatch.java.util.Date,typeMismatch]; arguments [org.springframework.context.support.DefaultMessag

c++之类类型转换

数据类型转换在程序编译时或在程序运行实现 基本类型 ←→ 基本类型 基本类型 ←→ 类类型 类类型 ←→ 类类型 类对象的类型转换可由两种方式说明: 构造函数  转换函数 称为用户定义的类型转换或类类型转换,有隐式调用和显式调用方式 1 class X 2 { // …… 3 public : 4 X ( int ) ; 5 X ( const char * , int = 0 ) ; 6 }; 7 void f ( X arg ) ; 8 : 9 X a = X( 1 ) ; // a = 1