向后兼容

 1 package com.cn;
 2
 3 class A{
 4     public void fun1(){
 5         System.out.println("A fun1");
 6     }
 7     public void fun2(){
 8         fun1();
 9     }
10 }
11 class B extends A{
12     public void fun1(){
13         System.out.println("B fun1");
14     }
15     public void fun3(){
16         System.out.println("B fun3");
17     }
18 }
19 class Test{
20     public static void main(String [] args){
21         B b = new B();
22         callA(b);
23     }
24     public static void callA(A a){
25         a.fun2();
26     }
27 }

打印结果:

B fun1

子类的功能可以被父类的引用变量引用(父类的fun2()调用了子类的fun1()),提高程序的可扩充性和可维护性。

时间: 2024-10-05 04:23:52

向后兼容的相关文章

什么是向后兼容?

什么是兼容性? compatible http://www.webopedia.com/TERM/C/compatible.html (n) Indicates that a product can work with or is equivalent to another, better-known product. The term is often used as a shorthand for IBM-compatible PC, a computer that is compatibl

html与JacaScript中的重要思想:预留后路、向后兼容、js分离

以一个简单的web程序为例 详细设计模式请配合代码及凝视食用 <!DOCTYPE html> <!-- 1 预留退路:假设用户禁用了js.链接还能正常显示吗?(href) 2 分离js:行为层与结构层真的分开且互不干扰吗?(onclick) 3 向后兼容:js代码中检測了浏览器的函数支持吗?(if(!xxx)return) --> <html lang="en"> <head> <meta charset="UTF-8&q

一分钟理解向后兼容

什么是兼容 谈到兼容,少不了获得兼容收益的目标对象,以及提供兼容功能的组件这两个相互对应的概念. 如果一个目标对象,能否在同一组件的同个不同版本上协同工作,则移该组件的两个版本是兼容的,如下图所示: 兼容性分类 组件的两个版本是兼容的,那就会有新版本兼容旧版本,或者旧新版本兼容新版本这两个兼容方向 在旧版本上开发的目标,或者旧版本生成的数据,能够在新版本正确运行,或者正确处理,称为向后兼容. 换句话说:向后兼容是指向历史兼容,如下图所示: 向前兼容却相好相反,在新版本上开发的目标,或者新版本上生

链接的平稳退化、渐进增强和向后兼容

1.平稳退化<a href="http://www.baidu.com/" title="A fengxz" onclick="popPup(this.getAttribute("href"));return false;">fengxz</a>//HTML function popPup(winURL){    window.open(winURL);        }//JavaScript 即使J

【荐】说说CSS Hack 和向后兼容

人一旦习惯了某些东西就很难去改,以及各种各样的原因,新的浏览器越来越多,而老的总淘汰不了.增长总是快于消亡导致了浏览器兼容是成了谈不完的话题.说 到浏览器兼容,CSS HACK自然而然地被我们想起.今天,我们通常都有一个团队或者将有一个团队的人在一个公司里面做相同的事,需要我们有统一的规范来进行Coding,以 方便维护.而解决兼容的方法就是(必须是,因为这才最容易有问题的)其中一个最重要的.要解决的规范之一. 在解决兼容方法上,想定出一个统一的规范,个人认为应该以下面3点为基本原则: 权衡成本

《javascript dom编程艺术》笔记(一)——优雅降级、向后兼容、多个函数绑定onload函数

刚刚开始自学前端,如果不对请指正:欢迎各位技术大牛指点. 开始学习<javascript dom编程艺术>,整理一下学习到的知识.今天刚刚看到第六章,记下get到的几个知识点. 优雅降级 看到版本翻译为预留退路,刚刚看到个名词,我觉得很奇怪,以前没有听说过啊.不过看到英文注释就知道了Graceful degradation不就是优雅降级么,听说过! 书中举了个例子,点击一个链接,弹出一个窗口的方法. function popUp(WinURL){ window.open(WinURL,&quo

一种向后兼容的C++结构体设计

问题产生的背景:有时候,我们需要维护老旧代码.这些代码经常因为需求变更而变化.最常见的升级就是接口的升级,诸如增加新的函数接口.扩展函数的参数.扩展协议等等.在此我们讨论一种较为少见的情形,即存储于设备中的一段二进制结构的升级.这种情况类似于网络通讯中的序列化,但又有所不同.关于如何设计序列化结构的文章有许多,我们在此不做讨论.设计目标: 1. 为了兼容老版本的结构体 2. 为了支持内存拷贝初始化3. 版本号的支持4. 尽量少的代码修改 假设我们第一次(旧)的数据结构如下: struct Old

关于矢量图片资源向后兼容:CompatVectorFromResourcesEnabled标志的使用

StackOverflow上摘抄的: some things have changed since I asked this question so I will answer it myself.With Support Library 23.4.0 the support for VectorDrawables from Ressources was reenabled: Android Support Library 23.4.0 available nowYou can find mor

9、?创建向后兼容的用

? 抽象UI接口 对于很多UI接口,不同版本的Android会提供不同的接口.例如, Tab,在Level = 11(Android3.0 Honeycomb)中使用ActionBar,而 在更低版本的Android中没有ActionBar,但可以用Tab控件代替. 对于这些情况,如果要开发适应于所有版本的Android应用,就需 要对这些UI接口进行抽象.通常使用接口或抽象类.并利用多态满足不 同Android版本的需求. ? 创建一个Tag抽象类 ? 抽象ActionBar.Tab 1 pu