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

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

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. XTU1254 Blance 如何实现称出1∼n 克的物品,请问最少需要几颗砝码?

    题目描述 小明有一架天平,小明想称出1∼n 克的物品,请问最少需要几颗砝码? 比如小明想称出1∼4 克的物品,需要2颗砝码,为1和3克. balance 输入 第一行是一个整数T(1≤T≤10000) ...

  2. HDU 2561

    F - 第二第二 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u Submit Status Prac ...

  3. SQL-数据库操作-002

    数据库的创建:create database data_name on primary ( name=data_1, filename='D\Data\data_name.mdf', size=50m ...

  4. switch语句和switch-case与if-else之间的转换

    switch语句格式:switch(变量){case 常量1:语句1;break;case 常量2:语句2;break;......default:语句;break;}特点:1.根据变量的值,选择相应 ...

  5. mongodb备份与还原

    mongodb单机: 备份所有的库: mongodump --host 10.10.7.33:27019 --gzip --out /home/mongodb/0415_bf 备份指定的库: mong ...

  6. linux系统调用的三种方法

    通过glibc提供的库函数 [23:02:14] gcc chmodtest.c [23:02:17] ls -l kali //记得先创建这个文件 -rwxrwxrwx. 1 root root 0 ...

  7. 开发工具idea背景及字体设置

    背景设置: 按两下shift,在搜索框里输入set Background Image,选择set Background Image,如图所示: 设置图片的路径和透明度,如图所示: ★ 注意:idea ...

  8. What is Zeebe?

    转自:https://zeebe.io/what-is-zeebe/ Zeebe is a workflow engine for microservices orchestration. This ...

  9. Where关键词的用法

    where(泛型类型约束) where关键词一个最重要的用法就是在泛型的声明.定义中做出约束. 约束又分为接口约束.基类约束.构造函数约束.函数方法的约束,我们慢慢介绍. 接口约束 顾名思义,泛型参数 ...

  10. ViewBag & ViewData

    ViewBag 和ViewData 是ASP.NET MVC 开发当中大家使用很多的传递数据的方法 VB可以称为VD的一块语法糖, VB是使用C# 4.0动态特征, 使得VD也具有动态特性. 下面就是 ...