最近复习中比较绕的一个地方 通过试验总结一下

若A为父类 B为子类 声明方式为:

  A t= new B();

将子类对象赋值给父类对象,它编译时为父类对象,但运行时却是子类对象:

1)被声明为父类对象;

2)拥有父类属性,调用父类中非子类覆盖的方法;

3)占用子类的内存空间;

4)无法访问子类中特有的变量和方法;

5)子类覆盖父类的方法时,调用子类的方法。

 class Subtest extends Test{
int x,y;
public void printHello(){
System.out.println("Hello!!");
}
public void printhhe(){ }
}
public class Test {
int me;
public void printHello(){
System.out.println("Hello");
}
public void printHi(){
System.out.println("Hi");
}
public static void main(String[] args){ Test a=new Subtest();
System.out.println(a.me);
System.out.println(a.x); //编译出错 无法拥有子类属性
a.printHello(); //此时输出为子类“Hello!!”
a.printHi();
a.printhehe(); //编译出错 无法调用子类方法
} }

关于JAVA 向上转型的更多相关文章

  1. Java向上转型和向下转型(附具体样例)

                                                Java向上转型和向下转型(附具体样例) 熬夜整理的关于Java向上和向下转型的样例,很的通俗易懂哦~~~~ 一 ...

  2. java 向上转型 向下转型

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

  3. Java向上转型的意义

    比如我这个程序 public class Testjava{ public static void main(String args[]) { fun(new Student()); fun(new ...

  4. java 向上转型与向下转型

    转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展. 向上转型:子类引用的对象 ...

  5. java向上转型和向下转型1

    在java继承体系中,认为父类(超类)在上层,子类在下层(派生类) ,向上转型就是把子类对象转成父类对象. public class Father { public void eat(){ Syste ...

  6. (原)java 向上转型中,任何域的访问操作都是由编译器解析,不是多态

    最近在向java发力,学习学习了下.看到了多态这一节,书中有个比较好的例子,所以就准备写下来,记录下来: package dynamic_binding01; public class dynamic ...

  7. java 向上转型和向下转型

    学习向上转型和向下转型怎么用没多难,但是为什么那样用,我搞了很多次没弄明白.没弄明白的原因是平时学习时之看例子,而例子一般都比较简单,没有对象之间的调用,一般就是一个对象调用自己的方法. 首先看下怎么 ...

  8. java向上转型和向下转型

    转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展. 向上转型:子类引用的对象 ...

  9. java向上转型的问题

    import java.util.Arrays;import java.util.HashSet;import java.util.Set;class A{ private String s1 = & ...

  10. Java向上转型与向下转型

    一.向上转型 例如:Parent p=new Son(); 这样引用p只能调用子类中重载父类的方法:但属性是父类的:如果想调用子类属性的话,可以用getter()方法. 二.向下转型 子类对象的父类引 ...

随机推荐

  1. iOS 相互引用引起内存泄露问题说明

    release动作只会对自身计数减一,而不会对属性发出release消息,只有该对象的引用计数为0,系统才会对该对象的所有属性发出release消息 类A的属性有类B,类B的属性有类A,而且两者都是强 ...

  2. sql表连接的几种方式

    这里有两张表TableA和TableB,分别是姓名表和年龄表,用于我们例子的测试数据 TableA id name 1 t1 2 t2 4 t4 TableB id age 1 18 2 20 3 1 ...

  3. VS2012 内容存储区指定的位置无效或者您无权访错误

    ——解决由于移动过microsoft help viwer( msdn )数据目录,又误删除数据目录后,引发其不能启动问题 1.使用命令行下载microsoft help viwer( msdn )数 ...

  4. MySQL 事物

    BEGIN DECLARE result INTEGER DEFAULT 0; -- 标记是否出错 DECLARE t_error INTEGER DEFAULT 0; -- 如果出现sql异常,则将 ...

  5. MSSQL2005 修改数据库的排序规则

    1.修改数据库排序规则ALTER DATABASE [DataBaseName] COLLATE Chinese_PRC_CI_AS ; 2.修改表中列的排序规则 如果下列其中之一当前正在引用一个列, ...

  6. 5.6.3.4 trim()方法

    ECMAScript 5 为所有字符串定义了trim()方法.这个方法会创建一个字符串的副本,删除前置以及后缀的所有空格,然后返回结果.例如: var stringValue = " hel ...

  7. Linux 网络编程: echo Service

    前言 大病初愈,感谢某人的陪伴,感谢王乐庆同学和赵攀同学的细心照顾.原以为过了第八周就不忙了,却没想到还有明天的党章考试.还是写代码比背党章有意思~趁着服务器还没过期,赶紧把 echo 完成了.关于错 ...

  8. multi-threaded copy command - robocopy

    we can copy files by the powerful robocopy tool, and it allow copy using muliti-threaded as well. As ...

  9. Ajax 生成流文件下载 以及复选框的实现

    JQuery的ajax函数的返回类型只有xml.text.json.html等类型,没有“流”类型,所以我们要实现ajax下载,不能够使用相应的ajax函数进行文件下载.但可以用js生成一个form, ...

  10. Correlation rule tuning

    Lots of organizations are deploying SIEM systems either to do their due diligence or because it’s pa ...