(原)java 向上转型中,任何域的访问操作都是由编译器解析,不是多态
最近在向java发力,学习学习了下。看到了多态这一节,书中有个比较好的例子,所以就准备写下来,记录下来:
 package dynamic_binding01;
 public class dynamic_binding01 {
     public static void main(String[] args) {
         // TODO Auto-generated method stub
         Super super1=new Sub();
         System.out.println("sup.field="+super1.field+",sup.getField="+super1.getField());
         Sub sub=new Sub();
         System.out.println("sub.field="+sub.field + ",sub.getField="+sub.getField() + ",sub.getSuperField="+sub.getSuperField());
     }
 }
 class Super{
     public int field=0;
     public int getField(){
         //System.out.println("Super class getField");
         return field;
     }
 }
 class Sub extends Super{
     public int field=1;
     public int getField(){
         //System.out.println("Sub class getField");
         return field;
     }
     public int getSuperField(){
         //System.out.println("Sub class getSuperField");
         return super.field;
     }
 }
运行结果为:
sup.field=0,sup.getField=1
sub.field=1,sub.getField=1,sub.getSuperField=0
总结:子类在向上转型为父类后,任何域的访问操作都是由编译器进行绑定的,所以不是多态的。
(原)java 向上转型中,任何域的访问操作都是由编译器解析,不是多态的更多相关文章
- Java向上转型和向下转型(附具体样例)
		
Java向上转型和向下转型(附具体样例) 熬夜整理的关于Java向上和向下转型的样例,很的通俗易懂哦~~~~ 一 ...
 - java 向上转型 向下转型
		
//父类 四边形 class Quadrangle{ public static void draw (Quadrangle q){ } } //子类 public class Parallelog ...
 - java 向上转型与向下转型
		
转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展. 向上转型:子类引用的对象 ...
 - java向上转型和向下转型1
		
在java继承体系中,认为父类(超类)在上层,子类在下层(派生类) ,向上转型就是把子类对象转成父类对象. public class Father { public void eat(){ Syste ...
 - java 向上转型和向下转型
		
学习向上转型和向下转型怎么用没多难,但是为什么那样用,我搞了很多次没弄明白.没弄明白的原因是平时学习时之看例子,而例子一般都比较简单,没有对象之间的调用,一般就是一个对象调用自己的方法. 首先看下怎么 ...
 - java向上转型和向下转型
		
转型是在继承的基础上而言的,继承是面向对象语言中,代码复用的一种机制,通过继承,子类可以复用父类的功能,如果父类不能满足当前子类的需求,则子类可以重写父类中的方法来加以扩展. 向上转型:子类引用的对象 ...
 - Java向上转型与向下转型
		
一.向上转型 例如:Parent p=new Son(); 这样引用p只能调用子类中重载父类的方法:但属性是父类的:如果想调用子类属性的话,可以用getter()方法. 二.向下转型 子类对象的父类引 ...
 - Java向上转型的意义
		
比如我这个程序 public class Testjava{ public static void main(String args[]) { fun(new Student()); fun(new ...
 - java向上转型的问题
		
import java.util.Arrays;import java.util.HashSet;import java.util.Set;class A{ private String s1 = & ...
 
随机推荐
- 潭州课堂25班:Ph201805201 爬虫基础 第八课  selenium   (课堂笔记)
			
Selenium笔记(1)安装和简单使用 简介 Selenium是一个用于Web应用程序测试的工具. Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE(7, 8, ...
 - [CF521D]Shop
			
[CF521D]Shop 题目大意: 你有一个长度为\(k(k\le10^5)\)的数列\(A_{1\sim k}\),有\(n(n\le10^5)\)种操作,操作包含以下\(3\)种: 将\(A_x ...
 - 转载:Gitlab备份和恢复操作记录
			
转载:Gitlab备份和恢复操作记录 包含了备份和数据恢复的操作记录,实验可行 前面已经介绍了Gitlab环境部署记录,这里简单说下Gitlab的备份和恢复操作记录: 1)Gitlab的备份目录路径设 ...
 - CentOS 6.8 安装 Erlang 及 RabbitMQ Server
			
安装 Erlang 19.3 # 安装依赖包 yum install -y gcc gcc-c++ unixODBC-devel openssl-devel ncurses-devel # 下载 er ...
 - python测试开发django-49.allow_tags和mark_safe
			
前言 前面一篇使用allow_tags方法可以在xadmin的后台页面中插入html代码,在2.x版本ModelAdmin里面删除了allow_tags属性的支持,使用mark_safe函数代替 al ...
 - Altium Designer 13 安装完整元件库
			
Altium Designer更新的非常快,都快赶上chrome了,13出来没多久14又出来了,之前一直用AD9.4,算是10之前的最后一个版本,也是很经典的一个版本.安装新版本后看到在目录结构上有些 ...
 - 64位电脑上启动程序出现丢失MSVCR110.dll的解决办法
			
启动程序报错如下: 无法启动此程序,因为计算机中丢失MSVCR110.dll.尝试重新安装该程序以解决此问题. 应该很容易就搜索到,缺少这样的dll文件,是没有安装Visual C++ Redistr ...
 - Std::map  too few template arguments
			
在上述的代码中,红色波浪线的部分编译的时候报错: error C2976: 'std::map' : too few template arguments 换成std::map<std::str ...
 - Connection is read-only. Queries leading to data modification are not allowed
			
看了下mysql-connector-5.1.40版本中,如果设置failoverReadOnly=true (即默认值,参考链接),当mysql连接failover时,会根据jdbc连接串将当前连接 ...
 - loopback文件系统
			
回环设备(loop-back devices) 实验环境 centos7.2 回环设备( 'loopback device')允许用户以一个普通磁盘文件虚拟一个块设备.(磁盘文件 --> 块设备 ...