关于“绑定(binding)”技术
翻开《Thinking in Java SE》,看完类成语声明类型之后,兴趣所致,翻开第七章,重温“多态”(Polymorphism)。
《Thinking in Java SE》第七章——“多态”的重温
所谓“多态”:继承机制允许你不但能将某个对象以其本身型别视之,亦能以其基础型别(base type)视之,多态打算除去型别之间的耦合关系。(原文)
向上转型(Upcasting):可以Upcasting但不可以Downcasting。
例:(upcasting)
class A() {
public void play() {
System.out.println("A is playing!");
}
}
class B() {
public void play() {
System.out.println("A is playing!");
}
}
public class Test() {
public static void tune(A a) {
a.play();
}
public static void main(Stiring[] args) {
A a=new A();
B b=new B();
tune(a);
tune(b); // upcasting,tune()方法需要一个A类型对象,而这里缺给出一个B类型对象,于是B类型对象自动向上转型为A类型对象,因为B继承自A,B是一个A
}
}
例:(downcasting)
import java.util.*;
public class TestArrayList() {
public static void main(String[] args) {
ArrayList al=new ArrayList();
String s="a";
al01.add(s);
al01.add("b");
al01.add("c");
//!~ ArrayList al02=al.clone(); error,因为clone()返回一个Object对象,Object是ArrayList的base class,不能让Object downcasting为一个ArrayList。
ArrayList al02=(ArrayList)al.clone(); // 可行,用()进行了强制类型转换
}
}
转载于:https://www.cnblogs.com/johnny/archive/2004/06/19/17083.html
关于“绑定(binding)”技术相关推荐
- JS Binding 技术(1)
背景 Lynx 作为一个基于 JavaScript 语言(后续简称 JS )的跨平台开发框架,与 JS 的通信是"与生俱来"的,框架和 JS 引擎打交道是必不可少的能力.JS 引擎 ...
- WPF入门(一)——绑定Binding
实现WPF界面控件属性与后台数据属性绑定. 建立解决方案如下: MainWindow添加 一个ListView,显示List,添加绑定语句: ItemsSource="{Binding T ...
- linux服务器多网卡聚合,linux多网卡绑定聚合-bond技术
网卡bond可以把多张网卡绑定为一个逻辑网卡,实现网卡的冗余,带宽扩容和负载均衡,会大幅度提升服务器的网络吞吐(I/O). bond模式: 1.Mode=0(balance-rr) 表示负载分担rou ...
- ARP静态绑定技术-快速绑定
1.1概述 ARP静态绑定技术固然好,但现实环境中这么多主机,该如何有效应用这么好的技术呢? 本期文章向各位小伙总结华三.华为设备ARP静态快速绑定方式,希望各位小伙伴有所收获. 1.2关键词 arp ...
- 深入理解Nginx:java业务逻辑层都用什么技术
前言 蓦然回首自己做开发已经十年了,这十年中我获得了很多,技术能力.培训.出国.大公司的经历,还有很多很好的朋友.但再仔细一想,这十年中我至少浪费了五年时间,这五年可以足够让自己成长为一个优秀的程序员 ...
- android——databinding中字符串的拼接处理、TextView显示的值随activity的属性值改变同时改变--LiveData、双向绑定过滤器、监听某个值的改变
简介 使用的技术是观察者与被观察者的模式,在google推荐的案例中也有使用到,现在我把它封装成一个扩展函数,使得使用更加简单明了 注意 1.在build.gradle添加databinding,在a ...
- C#语言入门、xamarin基础、.NET MAUI全栈开发技术综合笔记
文章目录 前言: 一.C#语言入门 1.类 类的三大成员 属性(Property) 方法(Method) 事件(Event) 2.静态成员与实例成员 3.类型.变量和方法 3.1类型(Type) 3. ...
- 研发4面真题解析(Java岗):和阿里大佬的技术面谈,隔壁都馋哭了
说在前面 已经到了月中旬了,程序员们即将迎来面试季,今天刚好有一位粉丝找到我,他上周刚面完奇虎360,经过了几轮的面试,最后薪资也谈了,今天主要是问我想这样的大型互联网公司一般多久会正式下offer. ...
- ZigBee技术简介,以及ZigBee的未来展望
ZigBee技术简介,以及ZigBee的未来展望 本文从ZigBee的发展历史入手,探讨了这种基于无线传感器技术的网络应用的协议栈.性能分析和各种应用领域,全面构建了完整的ZigBee技术应用与发展蓝 ...
- c++ gdb 绑定源码_第18篇:C++ 静态绑定和动态绑定
编译程序时,C ++编译器对源代码中的每个语句转换为一行或多行机器语言. 我们从之前的汇编基础系列和内存管理文章中,已经知道每行机器语言都有其自己的唯一的顺序地址. 由于函数也是一个数据对象,它也将转 ...
最新文章
- 田野中科院计算机网络信息中心,中国科学院
- python适合零基础学习吗-Python适合不适合零基础学习呢?老男孩教育
- 利用74LS138实现4-16译码器,并在QuartusⅡ上进行仿真
- html文件本质上是一个,html文件是什么
- zabbixproxy安装
- 2.自定义变量调节器
- android应用开发(23)---处理Activity状态更改
- Statement和PreparedStatement的区别
- Win10 wifi、蓝牙打不开
- 怎么锁定计算机的ip地址,电脑静态ip地址怎么设置
- tkinter打包为exe后找不到图片 tkinter_TclError:couldn‘t open “a.png“ no such file or directory
- ffmpeg MP3转wav
- FRS.0020The subservice has not been subscribed.解决方案
- win10系统怎么安装ie11
- 百万亚瑟王无法连接服务器请在信号良好的地方重试,叛逆性百万亚瑟王
- 使用EDU邮箱申请JetBrains学生包免费使用一年JetBrains全家桶
- 【MySQL系列】数据结构详解(全网最全)
- 03Java常用API-17. 日期格式化类SimpleDateFormat
- 如何实现移动端点击下拉箭头显示全部文字
- oop 编程是什么?
热门文章
- element icon图标方向旋转
- js 正则表达式判断价格
- TP5.1 查询数据库中上一条和下一条记录
- ClassNotFoundException
- no number java_java.lang.NumberFormatException问题!!!
- cobbler命令_使用Cobbler批量部署Linux和Windows:Windows系统批量安装(三)
- linux下dns劫持C语言实现,Linux下实现劫持系统调用的总结(上)--代码及实现
- b+树时间复杂度_满二叉树、完全二叉树、二叉搜索树、平衡二叉树
- spark如何防止内存溢出_什么叫内存溢出?内存泄漏的定义又是什么?使用中如何避免?...
- thymeleaf比较符号问题