易截截图软件、单文件、免安装、纯绿色、仅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 与 c# 3des 加解密

 
java 与 c# 3des 加解密 
主要差异如下:
1、 对于待加密解密的数据,各自的填充模式不一样
C#的模式有:ANSIX923、ISO10126、None、PKCS7、Zero,而Java有:NoPadding、PKCS5Padding、SSL3Padding
2、 各自默认的3DES实现,模式和填充方式不一样
C#的默认模式为CBC,默认填充方式为PKCS7; java的默认模式 ......

JAVA学习笔记第一讲091031

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

Java创建线程

 Java使用两种方法来处理多线程
第一种是子类化Thread对象。 Thread对象是Java提供的封装线程的对象。如果子类化Thread类,则必须重载这个类中的run方法以提供由这个特殊线程执行的代码。因为Java不支持多重继承,所以如果你的类需要子类化另一个类,那么就不能子类化Thread对象。
第二种是实现由Java提供的Runnable ......

java中软件开发的假分页和模糊查询的方法

 int pagenum=0;
  int pagesize = 4;
  int nowpage = 1;
String showpage = request.getParameter("page");
  String sdept1 = request.getParameter("selectdept");
 if(showpage!=null){
   nowpage = Convertutil.strtoint(showpage);
  }
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号