博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C++中的重载隐藏覆盖&&JAVA中的重载覆盖&&多态
阅读量:4992 次
发布时间:2019-06-12

本文共 739 字,大约阅读时间需要 2 分钟。

class 类继承默认是private,

struct 默认继承是public

 

C++中的隐藏:

只要派生类中出现和基类一样的函数名,基类中的函数就会被派生类中的函数给隐藏(如果派生类和基类中的函数名,函数参数列表一样,并且基类函数前面有virtual,那么此种情况是重写)

 

eg:

class A

{

public:

         void play(int x, int y){

                  cout <<"in class A"<< x <<" "<< y << endl;

         }

};

class B : public A

{

public:

         void play(int x)

         {

                  cout <<"in class B"<< x << endl;

         }

};

int main()

{

         B b;

         b.play(2,1);

         return 0;

}

 

因为派生类中隐藏了基类中的两个参数列表的play,所以main中的写法是通不过编译的

 

 

C++中的重写(覆盖):

基类函数有virtual,派生类和基类函数名字,参数列表一样

 

C++重载:

在同一个类中,函数名相同,参数列表不同

 

 

 

JAVA中的重载:

方法名相同,参数列表不一样,返回类型可以不同,不能只改变返回类型

 

JAVA中的重写:

方法名相同,参数列表一样,不能降低方法的方法的存取权限

 

java中没有隐藏

 

多态:

基类引用 = 派生类对象

BASE A=NEW DERIVED();

A.PLAY();

JAVA中的多态,基类没有virtual函数

JAVA 中,派生类的权限不能低于基类,派生类不能抛出比基类更多的异常

多态还有参数,返回类型

转载于:https://www.cnblogs.com/wuxiangli/p/5970412.html

你可能感兴趣的文章
Datatable get请求传参应用
查看>>
杭电1170
查看>>
3unit8
查看>>
kettle与各数据库建立链接的链接字符串
查看>>
【转】Apache Solr 访问权限控制
查看>>
LoadRunner压力测试实际运用的使用方法
查看>>
项目管理理论与实践(1)——企业项目管理介绍
查看>>
MySql学习20----数据库范式
查看>>
[Mark]The problems & solutions of vmware vsphere
查看>>
在centos7 上部署 vuepress
查看>>
[luogu1971 NOI2011] 兔兔与蛋蛋游戏 (二分图博弈)
查看>>
struts2中的标签
查看>>
Beta版总结会议
查看>>
建造者模式(Builder Pattern)
查看>>
ajax&模板引擎
查看>>
浅析Java中的final关键字
查看>>
PHP批量删除
查看>>
Android Studio 提示gradle Plugin is too old
查看>>
Android Studio中搜索中文字符串
查看>>
PostgreSQL - 转义字符
查看>>