文档章节

继承与多态

王明波
 王明波
发布于 2015/10/15 15:49
字数 254
阅读 4
收藏 0
点赞 0
评论 0

1

/**
 * @File ClassA.java
 * @date 2015年10月15日 下午2:40:42
 */

 /**
 * @data 2015年10月15日 下午2:40:42
 */
class ClassA {
 public String show( ClassD obj)
 {
  System.out.print("ClassA. ");
  return ("AD");
 }
 public String show(ClassA obj){
  System.out.print("ClassA. ");
  return "AA";
 }
}
class ClassB extends ClassA{
 public String show( ClassB obj)
 {
  System.out.print("ClassB. ");
  return ("BB");
 }
 public String show(ClassA obj){
  System.out.print("ClassB. ");
  return "BA";
 }
}
class ClassC extends ClassA{};
class ClassD extends ClassB{};

2

/**
 * @File Polymorphism.java
 * @date 2015年10月15日 下午2:48:16
 */

public class Polymorphism {
 public static void main(String[] args)
 {
  // TODO Auto-generated method stub
  ClassA aa = new ClassA();
  ClassA ab = new ClassB();
  ClassB bb = new ClassB();
//  ClassB ba = new ClassA(); //error
  ClassC cc = new ClassC();
  ClassD dd = new ClassD();
  System.out.println("aa.show(aa): "+aa.show(aa));
  System.out.println("aa.show(bb): "+aa.show(bb));
  System.out.println("aa.show(cc): "+aa.show(cc));
  System.out.println("aa.show(dd): "+aa.show(dd));
  System.out.println();
  System.out.println("ab.show(aa): "+ab.show(aa));
  System.out.println("ab.show(bb): "+ab.show(bb));
  System.out.println("ab.show(cc): "+ab.show(cc));
  System.out.println("ab.show(dd): "+ab.show(dd));
  System.out.println();
  System.out.println("bb.show(aa): "+bb.show(aa));
  System.out.println("bb.show(bb): "+bb.show(bb));
  System.out.println("bb.show(cc): "+bb.show(cc));
  System.out.println("bb.show(dd): "+bb.show(dd));
 }
}

 

3结果

ClassA. aa.show(aa): AA
ClassA. aa.show(bb): AA
ClassA. aa.show(cc): AA
ClassA. aa.show(dd): AD

ClassB. ab.show(aa): BA
ClassB. ab.show(bb): BA
ClassB. ab.show(cc): BA
ClassA. ab.show(dd): AD

ClassB. bb.show(aa): BA
ClassB. bb.show(bb): BB
ClassB. bb.show(cc): BA
ClassA. bb.show(dd): AD

 

 

© 著作权归作者所有

共有 人打赏支持
王明波
粉丝 1
博文 19
码字总数 15116
作品 0
厦门
程序员
C#.net技术内幕05-面向对象概念

继承: 类可以从基类继承得到所有的操作、属性、特性、事件以及这些内容的实现方法。但不能继承实例构造函数、析构函数和静态构造函数,也不能继承那些显示拒绝访问的成员。 继承扩展了基类,...

技术小胖子 ⋅ 2017/11/09 ⋅ 0

剖析C#的多态

一、什么是多态 面向对象程序设计中的另外一个重要概念是多态性。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。可以把一组对象放到一个数组中,然后调用它们的方法,在这种...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

深入剖析C#的多态

作者:天雨 一、什么是多态 面向对象程序设计中的另外一个重要概念是多态性。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。可以把一组对象放到一个数组中,然后调用它们的方...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

Android基础之Java多态、继承、重载和重写的区别

一、继承(inheritance) 1.1 继承是什么 简而言之,继承就是在现有类的基础上,增加新的方法或者重写基类的方法的一种方式。 继承还是面向对象语言的基本特征【继承、多态和封装】之一。 在J...

silencezwm ⋅ 2017/11/12 ⋅ 0

Java 多态性理解

Java中多态性的实现 什么是多态 面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。 多态的定义:指允...

Oscarfff ⋅ 2015/05/11 ⋅ 8

对Java多态的理解

Java中多态性的实现 什么是多态 面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。 多态的定义:指允...

wf王帆 ⋅ 2016/05/22 ⋅ 0

Java多态性理解

Java中多态性的实现 什么是多态 面向对象的三大特性:封装、继承、多态。从一定角度来看,封装和继承几乎都是为多态而准备的。这是我们最后一个概念,也是最重要的知识点。 多态的定义:指允...

Carbenson ⋅ 2015/09/21 ⋅ 0

Java 复习 —— OOP

面向对象基本概念 1、面向对象(OOP、OOD)三大特点:封装、继承、多态。注意,抽象不是特点之一 2、面向对象编程是对数据进行抽象,而函数式编程是对行为进行抽象。现实世界中,数据和行为并...

learn_more ⋅ 2015/08/06 ⋅ 2

JavaSE学习笔记系列:面向对象(3)

1.toString方法 object中定义有toString()方法,其返回值是string类型,它描述的是当前对象的有关信息。 在进行string与其他类型数据的连接操作时(如system.out.println(“info”+person))...

landy8530 ⋅ 2017/12/19 ⋅ 0

Python是面向对象的语言吗?python编程

  Python虽然是解释型语言,但从设计之初就已经是一门面向对象的语言,对于Python来说一切皆为对象。正因为如此,在Python中创建一个类和对象是很容易的,当然如果习惯面向过程或者函数的写...

老男孩Linux培训 ⋅ 06/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

设计模式--装饰者模式

装饰者模式 定义 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比生成子类更为灵活。 通用类图 意图 动态地给一个对象添加一些额外的职责。就增加功能来说,装饰模式相比...

gaob2001 ⋅ 57分钟前 ⋅ 0

JavaScript零基础入门——(八)JavaScript的数组

JavaScript零基础入门——(八)JavaScript的数组 欢迎大家回到我们的JavaScript零基础入门,上一节课我们讲了有关JavaScript正则表达式的相关知识点,便于大家更好的对字符串进行处理。这一...

JandenMa ⋅ 今天 ⋅ 0

sbt网络问题解决方案

转自:http://dblab.xmu.edu.cn/blog/maven-network-problem/ cd ~/.sbt/launchers/0.13.9unzip -q ./sbt-launch.jar 修改 vi sbt/sbt.boot.properties 增加一个oschina库地址: [reposit......

狐狸老侠 ⋅ 今天 ⋅ 0

大数据,必须掌握的10项顶级安全技术

我们看到越来越多的数据泄漏事故、勒索软件和其他类型的网络攻击,这使得安全成为一个热门话题。 去年,企业IT面临的威胁仍然处于非常高的水平,每天都会看到媒体报道大量数据泄漏事故和攻击...

p柯西 ⋅ 今天 ⋅ 0

Linux下安装配置Hadoop2.7.6

前提 安装jdk 下载 wget http://mirrors.hust.edu.cn/apache/hadoop/common/hadoop-2.7.6/hadoop-2.7.6.tar.gz 解压 配置 vim /etc/profile # 配置java环境变量 export JAVA_HOME=/opt/jdk1......

晨猫 ⋅ 今天 ⋅ 0

crontab工具介绍

crontab crontab 是一个用于设置周期性被执行的任务工具。 周期性执行的任务列表称为Cron Table crontab(选项)(参数) -e:编辑该用户的计时器设置; -l:列出该用户的计时器设置; -r:删除该...

Linux学习笔记 ⋅ 今天 ⋅ 0

深入Java多线程——Java内存模型深入(2)

5. final域的内存语义 5.1 final域的重排序规则 1.对于final域,编译器和处理器要遵守两个重排序规则: (1)在构造函数内对一个final域的写入,与随后把这个被构造对象的引用赋值给一个引用...

江左煤郎 ⋅ 今天 ⋅ 0

面试-正向代理和反向代理

面试-正向代理和反向代理 Nginx 是一个高性能的反向代理服务器,但同时也支持正向代理方式的配置。

秋日芒草 ⋅ 今天 ⋅ 0

Spring 依赖注入(DI)

1、Setter方法注入: 通过设置方法注入依赖。这种方法既简单又常用。 类中定义set()方法: public class HelloWorldOutput{ HelloWorld helloWorld; public void setHelloWorld...

霍淇滨 ⋅ 昨天 ⋅ 0

马氏距离与欧氏距离

马氏距离 马氏距离也可以定义为两个服从同一分布并且其协方差矩阵为Σ的随机变量之间的差异程度。 如果协方差矩阵为单位矩阵,那么马氏距离就简化为欧氏距离,如果协方差矩阵为对角阵,则其也...

漫步当下 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部