上转型:重写父类方法才调用子类方法,其他仍用父类的,包括被子类隐藏的父类成员变量,而且不能调用子类新增的成员变量和成员方法。

下转型:只能是转上去的才能转下去。下转型类似于该子类直接继承父类。

package Pack1;

public class updown {

    public static void main(String[] args) {
// TODO Auto-generated method stub
A obja;
B objb;
obja=new B();//obja为子类B对象的上转型对象
//上转型用的仍然是父类的成员变量
System.out.println("上转型对象 obja:\n"+"a1 = "+obja.a1+"\t"+"a2 = "+obja.a2+'\t');
//上转型用的仍然是父类的方法
obja.arithmeticOperation(10, 10);
//上转型,若父类中的方法被子类重写,则用子类
obja.fatherMethod(); //上转型不能访问子类中新增的成员变量和方法
//System.out.println(obja.c1); objb=(B)obja;
//下转型后,父类的成员变量被子类隐藏,用子类的成员变量
System.out.print("\n 强制转换对象 objb:\n"+"a1 = "+objb.a1+"\t"+"a2 = "+ objb.a2+"\t");
objb.arithmeticOperation(10, 10);
objb.fatherMethod();
System.out.println("c1 = "+objb.c1);
} } class A{
int a1=10;
int a2=100;
public void arithmeticOperation(int x,int y){
System.out.println("x + y = "+ ( x + y));
}
public void fatherMethod(){
System.out.println("调用父类A的方法:fatherMethod()");
}
} class B extends A{
int a2=1000;
int c1=10000;
public void fatherMethod(){
System.out.println("调用子类B的方法:fatherMethod()");
} }

Java学习——上转型与下转型对象的更多相关文章

  1. java上转型和下转型(对象的多态性)

    /*上转型和下转型(对象的多态性) *上转型:是子类对象由父类引用,格式:parent p=new son *也就是说,想要上转型的前提必须是有继承关系的两个类. *在调用方法的时候,上转型对象只能调 ...

  2. Java学习心得之 Linux下搭建Java环境

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建Java环境 1.前言2.JDK安装3.配置环境变量4. ...

  3. Java学习心得之 Linux下搭建JavaWeb环境

    作者:枫雪庭 出处:http://www.cnblogs.com/FengXueTing-px/ 欢迎转载 Java学习心得之 Linux下搭建JavaWeb环境 1. 前言2. Java安装3. t ...

  4. Java上转型和下转型

    Java 转型问题其实并不复杂,只要记住一句话:父类引用指向子类对象. 什么叫父类引用指向子类对象,且听我慢慢道来. 从2个名词开始说起:向上转型(upcasting) .向下转型(downcasti ...

  5. 对象的上转型和下转型 (instanceof关键字)

    1.对象的上转型,就是多态的一种写法 格式:父类名称 对象名 = new 子类名称(): Animal animal = new Cat(); 含义:右侧创建一个子类对象,把它当作父类来使用 向上转型 ...

  6. java 向上转型 向下转型

    //父类 四边形 class Quadrangle{ public static void draw (Quadrangle q){ } } //子类  public class Parallelog ...

  7. java基础值向上向下转型

    1.父类引用可以指向子类对象,子类引用不能指向父类对象. 2.向上转型:子类引用的对象转换为父类类型称为向上转型,把子类对象直接赋给父类引用叫upcasting,向上转型不用强制转型(类似于低精度赋给 ...

  8. java基础(十)之向上转型/向下转型

    向上转型:将子类的对象赋值给父类的引用. 向下转型:将父类的对象赋值给子类的引用. 向上转型 Student a = new Student(); Person zhang = a; 或者 Perso ...

  9. 从.Net到Java学习第九篇——SpringBoot下Thymeleaf

    从.Net到Java学习系列目录 Thymeleaf概述 Thymeleaf 是一个流行的模板引擎,该模板引擎采用java语言开发.模板引擎是一个技术名称,是跨领域平台的概念,在java语言体系下有模 ...

随机推荐

  1. 【Wannafly挑战赛24】【C失衡天平】

    https://www.nowcoder.com/acm/contest/186/C 题意:有n个武器,每个武器都有一个重量 Wi,有一个天平,只要两端的重量差不大于m就能达到平衡,求在天平平衡的情况 ...

  2. LNMP环境包安装IonCube教程

    ioncube是业内优秀的php加密解密解决方案.和zend guard相比,ioncube具有如下优势: 1. 安全:zend guard的版本不是非常安全,网络上有破解使用zend,下面我们来看I ...

  3. C# 的AOP实现

    闲来无事,做了一个AOP示例,此示例只能捕获方法调用事件,无法动态阻止方法调用的执行.因为取消后构造返回值成了难题,返回null貌似会报错.如果不需要这个功能,其实还是很完美的. 缺点是没有以接口方式 ...

  4. this关键字的使用8/22

    实质就是:this代表当前对象目录: 1.this(name) 调用同一个类中参数为 public Person(String name)这个构造方法 2.this.say() 同一个类中,某一个方法 ...

  5. shell-url-decode

    查询每个小时的clk ,然后获取对应的字段 #!/bin/bash urldecode(){ echo -e "$(sed 's/+/ /g;s/%\(..\)/\\x\1/g;')&quo ...

  6. Calendar类的使用——闰年的计算

    1.Calendar类: 是一个抽象类,需要导入java.util.Calendar包. Calendar c = Calendar.getInstance(); getInstance直接返回的是子 ...

  7. OutputStream 和 Writer

    OutputStream类(直接操作byte数组) 该类是字节输出流的抽象类,定义了输出流的各种操作方法.如下图是OutputStream的层次结构: ByteArrayOutputStream:字节 ...

  8. Announcing HashiCorp Consul + Kubernetes

    转自:https://www.hashicorp.com/blog/consul-plus-kubernetes We're excited to announce multiple features ...

  9. gearman openresty 集成试用

    很简单使用了一个openresty 的lua 模块 环境准备 docker-compose 文件 详细配置可以参考 https://github.com/rongfengliang/gearmango ...

  10. Singer 学习十 同步模式

    sync 模式是属于tap 的操作,同步模式下,tap 需要提交 schema. record .state message, singer 指南对于每种 类型有详细的说明 streams 每个str ...