易截截图软件、单文件、免安装、纯绿色、仅160KB

Java中的上下转型

见下边的程序段
package test;
class A {
    public String f(A obj)
    {
        return("A");
    }
}
class B extends A {
    public String f(B obj)
    {
        return("C");
    }
    public String f(A obj)
    {
        return("D");
    }
}
我们使用子类创建一个对象:
B b = new B();
然后再将这个子类的引用放到父类对象中:
A a;
a = b;
那么这个父类对象a是子类对象b的上转型对象,对象的实体由子类负责建立,实质还是子类,只是损失了一些功能而已,这样的得失具体如下:
得:上转型对象可以操作和使用子类继承或者重写的方法。
失:上转型对象丧失了对子类新增成员变量或新增的方法的操作和使用。
那么下边的这段测试代码的打印结果就是“D”,因为a2只能有public String f(A obj) 这个方法是可以用的。
public class TestObj
{
    public static void main(String args[])
    {  A a1 = new A();
        A a2 = new B(); //子类对象转化为父类,称为上转型,不需要强制转换。
        B b = new B();
        System.out.println(a2.f(b)); //“D”
        System.out.println();
         if (a2 instanceof B) {
             B b1 = (B) a2;  //父类对象转化为下转型,此时需要使用强制转换,此时需要先判断要转换的这个对象(也就是a2指向的这个对象)是不是B类的实例
            System.out.println(b1.f(b));//"C"
      


相关文档:

JAVA学习笔记第一讲091031

数据类型:
(4类8种)
逻辑型-boolean
字符型- char
数值型:
整数型- byte,  short,  int,  long
浮点数型- float,  double
·Java 语言中还允许使用转义字符 ‘\’ 来将其后的字符转变为其它的含义.‘\n’代表换行符
·Java整型常量默认为int型,声明lon ......

Java 技术是什么?

Java 技术是什么?
Java 技术既是一种高级的面向对象的编程语言,也是一个平台。Java 技术基于 Java 虚拟机(Java virtual machine,JVM)的概念 —— 这是语言与底层软件和硬件之间的一种转换器。Java 语言的所有实现都必须实现 JVM,从而使 Java 程序可以在有 JVM 的任何系统上运行。
Java 编程语言(Java p ......

java上传文件实例

 package com.yc.eap.util;
import java.io.File;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.apache.common ......

Java数据类型

 Java变量有两种数据类型,一是Primitive主数据类型,一是引用.
主数据类型包括:
Boolean、char、Byte、short、int、long、float、double
引用为:Dog d = new Dog();
                   d.bark. ......

java编码解码大全


java中字符串的编码解码问题
1.将字符串转换成byte数组再恢复:
byte[] getBytes(String charsetName)
String(byte[] bytes, String charsetName)
或getBytes()
String(byte[] bytes)
2.使用String sun.misc.BASE64Encode.encode(byte[] b)
byte[] String sun.misc.BASE64Decode.decodeBuffer(String str)
将字符 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号