大王叫我来巡山!!!!!{多态}

重载多态, 继承多态,

重载多态:

如:public void show(int a)

{

out<<a<<endl;

}

public void show(string b)

{

out<<b<<endl;

}

继承多态,:

class person

{

string name;

public:

virtual void show()=0;

}

class student:public person

{

void show(){out<<"学生:"<<name<<endl;

}

class teacher:public person

{

void show(){out<<"老师:"<<name<<endl;

}

main函数里:

person per1=new student();

person per2=new teacher();

student.show();

teacher.show();

会显示不同结果

================================================================================================

1、方法的重载和覆盖 

  a)、重载

  

 1 /**  2 *    重载:1参数的类型不同 2参数的个数不同 3 参数的顺序不同  3 *                与参数的返回值无关,与作用域无关   4 *                在继承中,父类方法除私有外,其它满足重载要求  5   6 */  7   8   9 class OverLoadFather 10 { 11         private int OverLoad(int i){ 12             System.out.println("这是父类的int OverLoad(int i)方法!"); 13             return i; 14         } 15  16         public int OverLoad(double i){ 17             System.out.println("这是父类的int OverLoad(double i)方法!"); 18             return (int)i; 19         } 20  21         int OverLoad(float i){ 22             System.out.println("这是父类的int OverLoad(float i)方法!"); 23             return (int)i; 24         } 25  26         protected int OverLoad(int i,int j){ 27             System.out.println("这是父类的int OverLoad(int i,int j)方法!"); 28             return i + j; 29         } 30 } 31  32 class OverLoadSub extends OverLoadFather 33 { 34     private int OverLoad(int i){ 35         System.out.println("这是子类的int OverLoad(int i)方法!"); 36         return i; 37     } 38  39     /* 40     *    重载与返回值的类型无关 41     public double OverLoad(int i){ 42         System.out.println("这是子类的double OverLoad(int i)方法!"); 43         return i; 44     }*/ 45      46     public int OverLoad(double i){ 47         System.out.println("这是子类的int OverLoad(double i)方法!"); 48         return (int)i; 49     } 50  51     public int OverLoad(float i){ 52         System.out.println("这是子类的int OverLoad(float i)方法!"); 53         return (int)i; 54     } 55      56     public int OverLoad(int i,double j){ 57         System.out.println("这是子类的int OverLoad(int i,double j)方法!"); 58         return i + (int)j; 59     } 60  61     public int OverLoad(double i,int j){ 62         System.out.println("这是子类的int OverLoad(double i,int j)方法!"); 63         return (int)i + j; 64     } 65  66     public int OverLoad(int i,double j,float k){ 67         System.out.println("这是子类的int OverLoad(int i,double j,float)方法!"); 68         return i  + (int)(j + k); 69     } 70  71     public int OverLoad(float i,int j,double k){ 72         System.out.println("这是子类的int OverLoad(float i,int j,double k)方法!"); 73         return (int)i + j +(int) k; 74     } 75 } 76 public class TestOverLoad{ 77     public static void main(String[] args)  78     { 79         OverLoadSub ol =new OverLoadSub(); 80         ol.OverLoad(3); 81         ol.OverLoad(3.0); 82         ol.OverLoad(3,3.0); 83         ol.OverLoad(3.0f,3,3.0); 84         ol.OverLoad(3,3,3.0); 85     } 86 }

  b)、覆盖

 1 class A{                    // 定义类A  2     public void fun1(){        // 定义fun1()方法  3     }  4     public void fun2(){  5     }  6 }  7 class B extends A{  8     public void fun1(){        // 此方法被子类覆写了  9     } 10     public void fun3(){ 11     } 12 }; 13 public class Pol{ 14     public static void main(String asrgs[]){ 15         B b = new B() ;        // 实例化子类对象 16         A a = b ;            // 向上转型关系 17         a.fun1() ;            // 此方法被子类覆写过 18         a.fun3() ; 19     } 20 }

  2、对象的多态性(向上转型和向下转型)

  a)、向上转型

 1 class A{                    // 定义类A  2     public void fun1(){        // 定义fun1()方法  3     }  4     public void fun2(){  5     }  6 }  7 class B extends A{  8     public void fun1(){        // 此方法被子类覆写了  9     } 10     public void fun3(){ 11     } 12 }; 13 public class Pol{ 14     public static void main(String asrgs[]){ 15         B b = new B() ;        // 实例化子类对象 16         A a = b ;            // 向上转型关系 17         a.fun1() ;            // 此方法被子类覆写过 18         a.fun3() ; 19     } 20 }

 b)、向下转型

 1 class A{                    // 定义类A  2     public void fun1(){        // 定义fun1()方法  3     }  4     public void fun2(){  5     }  6 }  7 class B extends A{  8     public void fun1(){        // 此方法被子类覆写了  9     } 10     public void fun3(){ 11     } 12 } 13 public class Pol{ 14     public static void main(String asrgs[]){ 15         A a = new A() ;            // 实例化了一个父类对象 16         B b = (B)a ;        // 发生了向下转型关系 17         b.fun1() ;

18         b.fun2() ; 19         b.fun3() ; 20     } 21 }
时间: 2024-10-03 17:52:44

大王叫我来巡山!!!!!{多态}的相关文章

FZU 2167 大王叫我来巡山呐

第一篇 先水一题吧 #include<stdio.h> #include<string.h> #include<math.h> #include<iostream> #include<algorithm> #include<queue> #include<stack> #define mem(a,b) memset(a,b,sizeof(a)) #define ll __int64 #define MAXN 1000 #d

FZU2167:大王叫我来巡山呐

Problem Description 大师兄在取得真经后,每天详读经书,认真完成读书笔记,理论联系实际,不断提高实践能力.假设大师兄开始修炼的第一天是星期一,至今已经修炼了N天,那么有多少天是星期六或者星期日,大师兄还在修炼呢?  Input 每组输入数据包含一个整数N(0<N<100,000).  Output 对每组输入数据,输出一行,仅包含一个整数,表示这N天中是星期六或者星期日的天数.  Sample Input 5 6 7 12 13 14  Sample Output 0 1 2

h5视频播放

h5视频播放 一直在写js原生的东西,感觉总是停滞不前,现在我们应该学一些h5新的特性,因为我们毕竟是从事前端的,下面我们一起来写一个视频播放吧 1,html 1 <div class="video"> 2 <video src="video/oceans.ogv" controls></video><br> 3 <div class="box"> 4 <div class=&qu

福州大学第十一届程序设计竞赛

Problem 2167 大王叫我来巡山呐 Problem 2168 防守阵地 I 直接前缀和预处理 Problem 2169 shadow  .. Problem 2170 花生的序列 dp Problem 2171 防守阵地 II 线段树搞搞 Problem 2172 巡了南山我巡北山 http://blog.csdn.net/my_acm_dream/article/details/44507371 好题 Problem 2173 Nostop 矩阵高速幂 Problem 2174 卷福的

知其一不知其二之Jenkins Hacking

转自安全脉搏 本文首发安全脉搏 感谢大王叫我来巡山 的投递 转载请注明来源 大多安全工作者听到jenkins都会知道有个未授权的命令执行 但是如果Script页面要授权才能访问呢 或者你的用户没有Overall/RunScripts权限呢 抱着提出问题–>测试问题–>解决问题的思路有了这篇文章 由于版本众多 也不用下载本地测了 直接在内网找到六个 截止发稿 Jenkins新版本为(1.589) 一. 知其一的Jenkins未授权访问可执行命令 http://www.secpulse.com:8

提升用户体验!29个使用动画效果的网站布局

五芍缁 ǎ廖爻 楼彝{⊙ 很多人觉得这钱借不得肯定要打水漂干脆闭门谢客就只有冯家跟其余两家当时脸皮 岂希胗私 唛庚┗馔 样罗嵩蓄 绫尚∧翟 邃み焚ㄍ 她更不是那个曾被唤作鱼玄机的少女了脸颊贴在微凉桌面上伸手去摸着宠物的毛茸茸脑 阎通书啪一声打开折扇微笑道:"有句话怎么说来着庙小妖风大水浅王八多?没想到 妄癯炱夸 萧爷 侠的小姑娘都会欢乐嚷嚷大王让我来巡山呦巡了南山巡北山呦每次末尾还不忘呦呦呦颤 宜睥枭 息'德鬓 鹩甩埂帅 吟深蹇 毹俯ê堋 咛锔棺 腹地的北凉骑军名义上归主帅黄宋濮调

Android应用基础学习记录

福州大学第十一届程序设计竞赛 Contest Finished! Tag Pro.ID Problem Title Ratio(AC/Submit) 1 大王叫我来巡山呐 80.31%(261/325) 2 防守阵地 I 23.48%(193/822) 3 shadow 13.23%(97/733) 4 花生的序列 12.07%(21/174) 5 防守阵地 II 14.98%(68/454)   6 巡了南山我巡北山 0.00%(0/45) 7 Nostop 20.79%(21/101)  

iOS MapKit导航及地理转码辅助类

Problem 2167 大王叫我来巡山呐 做的的第二题 呵呵 Problem 2168 防守阵地 I 做的第一题 打了下草稿 马上切了它 假设当前x=(ai)*1+(ai+1)*2+(ai+2)*3+''''+(aj)*m 下一次是(ai+1)*1+(ai+2)*2+(ai+3)*3+''''+(aj+1)*m = (ai)*1+(ai+1)*2+(ai+2)*3+''''+(aj)*m+(aj+1)*(m+1) -(ai+(ai+1)+(ai+2)+'''+(aj)+(aj+1)) 紫色的这

正则表达式的基本

今天给大家说一下正则:正则全程正则表达式,也可以称为规则表达式.英文为:regular expression,简写为reg.而正则表达式就是和字符串打交道,制定的一系列的规则,这也是他的用法:特点:性能极高,方便. 正则的写法: 1.传一个参数 var reg = new RegExp('要查找的字符串()'); str.search(reg); 找不到返回-1;从左往右找一次;区分大小写; 2.传两个参数: new RegExp('要查找的字符串','g'); 这里面g代表着: global: