【java基础】上传型和下转型对象
来源:互联网 发布:淘宝小黄鸭 编辑:程序博客网 时间:2024/06/06 04:58
对象可以转型,那么这2个对象一定存在父子关系,或者是实现了接口(也可以把接口当初父类看待)
1、上转型
例如,把猫转换成动物
动物 object =new 猫();
这个动物可以调用 猫继承父类过来的所有方法和成员变量(前提这些方法和变量是可见的,非private,或者无修饰且不同包情况),
如果猫重写了父类的某些方法,那么
动物调用父类的方法一定的子类重写的!!!!!!
2、下转型
动物 object1=new 动物();
猫 object2=(猫)object1;
这样写报错!!!!!!!!!!!!!!
java.lang.ClassCastException: com.test.Person cannot be cast to com.test.Student
下转型对象前提,这个对象是你上转型时候的引用变量。
动物 object =new 猫();上转型
猫 object2=(猫)object ;
这个时候就和 猫 object3=new 猫()一样了,
object3能干什么,object2都可以。
demo:
父类----------------------package com.test;public class Person { int age = 0; private int age2 = 0; private int getAge() { return age; } public void setAge(int age) { this.age = age; } public void print() { System.out.println("class " + getClass()); }}子类------------------package com.test;public class Student extends Person { String type = "Student"; public void print() { System.out.println("class " + getClass()); } public void getType() { System.out.println("type Student"); }}测试:package com.test;public class Test1 { public static void main(String[] args) { Student s = new Student(); Person person = s;//上转型 person.print();//子类class class com.test.Student //下转型 Student s3 =(Student)person; s3.print();//子类class class com.test.Student /*编译通过,运行报错 * Exception in thread "main" 子类class class com.test.Studentjava.lang.ClassCastException: com.test.Person cannot be cast to com.test.Student at com.test.Test1.main(Test1.java:11) * */ Person person2 = new Person(); Student s2 = (Student) person2; s2.getType(); }}
好了,就这样
阅读全文
1 0
- 【java基础】上传型和下转型对象
- java上转型和下转型对象
- java基础--对象转型和多态
- java基础---对象的转型
- java上转型和下转型
- java基础----对象的上转型对象
- Java中上转型对象与下转型对象
- java基础之对象的向上转型
- java基础之对象的向下转型
- JAVA基础6.50——对象转型
- Java基础学习笔记--对象转型
- 复习Java基础之对象转型
- Java基础之面向对象的方法参数和对象上转型
- java语言基础(37)——面向对象(多态中的向上转型和向下转型)
- java面向对象之向上转型和向下转型
- java中为什么使用上转型和下转型
- java基础:对象的向上转型/向下转型; 基本类型的 向上转型/向下转型实例(窄化)
- java基础总结13-面向对象9(对象转型)
- C++字符串分割
- iphone webapp 隐藏地址栏(全屏)解决方案
- 抽象工厂模式
- Gnome桌面的一些基本应用程序表
- 工厂方法模式
- 【java基础】上传型和下转型对象
- CocoaPods安装后出现[!] Unable to find a pod with name, author, summary, or description matching
- innobackupex单表增量备份与恢复
- ffmpeg解码调用思路
- Golang 如何将多个对象添加到切片里的不同方式,空切片的不同定义方式
- 简单工厂模式
- 模COMSOL Multiphysics v5.3 Win64 & Linux64 & MacOSX64 1DVD
- python笔记-013-简单的单元测试
- innobackupex单库增量备份