文档章节

继承与多态

王明波
 王明波
发布于 2015/10/15 15:49
字数 254
阅读 4
收藏 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
0
剖析C#的多态

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

晨曦之光
2012/03/09
61
0
第32节:Java中-构造函数,静态方法,继承,封装,多态,包

构造函数实例 测试类 静态方法 静态修饰的调用方式:1)类名.方法名;2)对象.方法名 继承 案例 在现实世界当中,继承就是儿子得到老子的东西,在面向对象的世界当中,继承就是一个类得到了另...

达叔小生
昨天
0
0
深入剖析C#的多态

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

晨曦之光
2012/03/09
172
0
Android基础之Java多态、继承、重载和重写的区别

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

silencezwm
2017/11/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Linux环境搭建 | VMware下共享文件夹的实现

在进行程序开发的过程中,我们经常要在主机与虚拟机之间传递文件,比如说,源代码位于虚拟机,而在主机下阅读或修改源代码,这里就需要使用到 「共享文件」 这个机制了。本文介绍了两种共享文...

良许Linux
57分钟前
4
0
JUC锁框架——AQS源码分析

JUC锁介绍 Java的并发框架JUC(java.util.concurrent)中锁是最重要的一个工具。因为锁,才能实现正确的并发访问。而AbstractQueuedSynchronizer(AQS)是一个用来构建锁和同步器的框架,使用A...

长头发-dawn
今天
1
0
docker中安装了RabbitMQ后无法访问其Web管理页面

在官网找了"$ docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 rabbitmq:3-management"这条安装命令,在docker上安装了RabbitMQ,,结果输入http://localhost:8080并不......

钟然千落
今天
4
1
spring-cloud | 分布式session共享

写在前面的话 各位小伙伴,你们有福了,这一节不仅教大家怎么实现分布式session的问题,还用kotlin开发,喜欢kotlin的小伙伴是不是很开心! 以前在写Android的时候,就对客户端请求有一定的认...

冯文议
今天
3
0
c语言之内存分配笔记

先看一个数组: short array[5] = {1,2} // 这儿定义的一个int类型的数组,数组第1和第2个元素值是1和2.其余后面默认会给值为0; 或者 short array[] = {1,2};//这儿数组第1和第2个元素,数组...

DannyCoder
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部