package duotai;
class A{
public String show(){
return "A";
}
} class B extends A{ public String show(){
return "B";
}
public String onlyB(){
return "onlyB";
} } class C extends B{
public String show(){
return "C";
} public String onlyC(){
return "onlyC";
}
} class D{ public String show(String item){
return "D+"+item;
} public int show(int item){
return item;
}
} public class Main { public static void main(String[] args) {
A a = new A();
B b = new B();
C c = new C();
A ab = new B();
A ac = new C();
B bc =new C();
/*
* B是A的子类,C是B的子类,A中有方法show(),B和C都对其进行了重写。
* 重写是父类与子类多态性的表现,子类的对象调用该方法将调用子类中的定义的此方法,父类中的此方法被屏蔽。
* 1,2,3分别为A,B,C的对象调用该方法,所以返回结果分别为A,B,C
*
*/
//1
System.out.println("1:a.show()="+a.show()); //输出:1:a.show()=A
//2
System.out.println("2:b.show()="+b.show()); //输出:2:a.show()=B
//3
System.out.println("3:c.show()="+c.show()); //输出:3:a.show()=C
/*
* 当超类通过声明的引用变量(称其为“对象的引用”其实更合适)调用其子类的对象时,它调用的方法必须是超类中拥有的子类的方法。
* 4中变量ab是由A声明的,引用了B的对象,所以ab.show()调用的是B类中的show()方法;但是如果使用ab变量调用onlyB()
* 是调不到的,因为超类中没有该方法。
* 5,6同4
*
*/
//4
System.out.println("4:ab.show()="+ab.show()); //输出:4:ab.show()=B
//5
System.out.println("5:ac.show()="+ac.show()); //输出:5:ac.show()=C
//6
System.out.println("6:bc.show()="+bc.show()); //输出:6:bc.show()=C /*
* 在D中有两个show方法,但它们的参数和返回值不同,这是方法的重载。
* 重载是一个类中多态性的一种表现,方法名相同,但参数的个数、类型,返回值至少有一个不同。
*
*/
D d =new D();
//7
System.out.println("7:d.show(itemStr)="+d.show("dd")); //7:d.show(itemStr)=D+dd
//8
System.out.println("8:d.show(itemInt)="+d.show(1)); //8:d.show(itemInt)=1
} }

版权声明:本文为博主原创文章,未经博主允许不得转载。

巩固java(五)----通过实例理解java多态的更多相关文章

  1. Java提高篇之理解java的三大特性——继承

    在<Think in java>中有这样一句话:复用代码是Java众多引人注目的功能之一.但要想成为极具革命性的语言,仅仅能够复制代码并对加以改变是不够的,它还必须能够做更多的事情.在这句 ...

  2. 【转】java提高篇(二)-----理解java的三大特性之继承

    [转]java提高篇(二)-----理解java的三大特性之继承 原文地址:http://www.cnblogs.com/chenssy/p/3354884.html 在<Think in ja ...

  3. 【Java】「深入理解Java虚拟机」学习笔记(1) - Java语言发展趋势

    0.前言 从这篇随笔开始记录Java虚拟机的内容,以前只是对Java的应用,聚焦的是业务,了解的只是语言层面,现在想深入学习一下. 对JVM的学习肯定不是看一遍书就能掌握的,在今后的学习和实践中如果有 ...

  4. java提高篇之理解java的三大特性——多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  5. java提高篇(四)-----理解java的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  6. (转)java提高篇(四)-----理解java的三大特性之多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  7. 【转】java提高篇之理解java的三大特性——多态

    面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...

  8. 通过实例理解Java网络IO模型

    网络IO模型及分类 网络IO模型是一个经常被提到的问题,不同的书或者博客说法可能都不一样,所以没必要死抠字眼,关键在于理解. Socket连接 不管是什么模型,所使用的socket连接都是一样的. 以 ...

  9. Java 干货之深入理解Java泛型

    一般的类和方法,只能使用具体的类型,要么是基本类型,要么是自定义的类.如果要编写可以应用多中类型的代码,这种刻板的限制对代码得束缚会就会很大. ---<Thinking in Java> ...

随机推荐

  1. 安卓学习笔记--已root设备应用请求root权限

    网上查到的方法 Process process = null; DataOutputStream os = null; try { String cmd = "chmod 777 " ...

  2. OpenCV 1 图像分割--分水岭算法代码

    // watershed_test20140801.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" // // ch9_watershed ...

  3. leetCode之旅(5)-博弈论中极为经典的尼姆游戏

    题目介绍 You are playing the following Nim Game with your friend: There is a heap of stones on the table ...

  4. csdn我的blog成长轨迹(好吧我是闲的蛋疼)

    2014-06-26 21:26        2014-06-28 15:17        2014-07-03 14:35                 2014-08-31 0922     ...

  5. LeetCode(38)-Valid Sudoku

    题目: Determine if a Sudoku is valid, according to: Sudoku Puzzles - The Rules. The Sudoku board could ...

  6. How to configure ODBC DSN in Client to access remote DB2 for Windows

      How to configure ODBC DSN in Client to access remote DB2 for Windows MA Gen feng (Guangdong Unito ...

  7. 数据准备<2>:数据质量检查-实战篇

    上一篇文章:<数据质量检查-理论篇>主要介绍了数据质量检查的基本思路与方法,本文作为补充,从Python实战角度,提供具体的实现方法. 承接上文,仍然从重复值检查.缺失值检查.数据倾斜问题 ...

  8. 计算机网络-TCP/IP HTTP Conclusion

    1.1OSI 与 TCP/IP 各层的结构 1.2 三次握手和四次挥手,TCP为什么三次握手,四次挥手 在第一次消息发送中,A随机选取一个序列号作为自己的初始序号发送给B:第二次消息B使用ack对A的 ...

  9. mongodb3.6 (五)net 客户端访问mongodb设置超时时间踩过的“坑”

    前言 在上一篇文章中,我们有提到net访问mongodb连接超时默认为30秒,这个时间在实际项目中肯定是太长的.而MongoClientSettings 也确是提供了超时属性,如下图: 可实际使用中, ...

  10. 02_Linux学习_命令

    帮助命令:        xxx --help        man xxx 列出当前目录下的目录和文件:        ls        ls -l        ls --help        ...