关于C++ , java继承重载
来源:互联网 发布:足球战术板 软件 编辑:程序博客网 时间:2024/05/16 00:45
C++ 重载只能是同一个类中,
子类重载的话,父类里面的同名方法就被隐藏掉了,即使参数不同
用限定符 :: 可以找到~
而Java允许导出类重新定义父类方法而不会屏蔽其在基类的任何版本
子类重载的话,父类里面的同名方法就被隐藏掉了,即使参数不同
用限定符 :: 可以找到~
#include<iostream>
using namespace std;
class Base {
public:
void foo (int i) {
cout<<"Base foo int "<<i<<endl;;
}
void foo () {
cout<<"Base foo none "<<endl;
}
};
class Drived: public Base {
public:
void foo (float f) {
cout<<"Drived foo float "<<f<<endl;
}
};
int main()
{
Drived derive;
derive.foo(6.9f); // Output: Drived foo float 6.9
//! obj.foo(); Error
//! derive.foo(2); Error
derive.Base::foo(); // OK, Output: Base foo none
derive.Base::foo(2); // Base foo int 2
return 0;
}
using namespace std;
class Base {
public:
void foo (int i) {
cout<<"Base foo int "<<i<<endl;;
}
void foo () {
cout<<"Base foo none "<<endl;
}
};
class Drived: public Base {
public:
void foo (float f) {
cout<<"Drived foo float "<<f<<endl;
}
};
int main()
{
Drived derive;
derive.foo(6.9f); // Output: Drived foo float 6.9
//! obj.foo(); Error
//! derive.foo(2); Error
derive.Base::foo(); // OK, Output: Base foo none
derive.Base::foo(2); // Base foo int 2
return 0;
}
而Java允许导出类重新定义父类方法而不会屏蔽其在基类的任何版本
//: reusing/Hide.java
// Overloading a base-class method name in a derived
// class does not hide the base-class versions.
class Homer {
char doh(char c) {
System.out.println("doh(char)");
return 'd';
}
float doh(float f) {
System.out.println("doh(float)");
return 1.0f;
}
}
class Milhouse {}
class Bart extends Homer {
void doh(Milhouse m) {
System.out.println("doh(Milhouse)");
}
}
public class Hide {
public static void main(String[] args) {
Bart b = new Bart();
b.doh(1);
b.doh('x');
b.doh(1.0f);
b.doh(new Milhouse());
}
} /* Output:
doh(float)
doh(char)
doh(float)
doh(Milhouse)
*///:~
// Overloading a base-class method name in a derived
// class does not hide the base-class versions.
class Homer {
char doh(char c) {
System.out.println("doh(char)");
return 'd';
}
float doh(float f) {
System.out.println("doh(float)");
return 1.0f;
}
}
class Milhouse {}
class Bart extends Homer {
void doh(Milhouse m) {
System.out.println("doh(Milhouse)");
}
}
public class Hide {
public static void main(String[] args) {
Bart b = new Bart();
b.doh(1);
b.doh('x');
b.doh(1.0f);
b.doh(new Milhouse());
}
} /* Output:
doh(float)
doh(char)
doh(float)
doh(Milhouse)
*///:~
- 关于C++ , java继承重载
- [C++]关于C++中继承、重载、掩盖
- [C++]关于C++中继承、重载、掩盖
- [C++]关于C++中继承、重载、掩盖
- java(或C++)继承、重载、覆盖、多态
- 【c++】关于类继承运算符重载友元函数
- java--继承封装重载
- java 重载、继承、多态
- Java重载,继承,覆盖
- 关于继承、构造、重载、重写
- 关于封装、继承、多态、重载
- Object-C 继承.重写.重载
- c/c++继承与重载
- java-重载、重写、继承、多态
- Java中的继承、重载、覆盖
- 【Java】重写、重载、多态、继承
- java(4)继承,重载,多态
- Java-继承、重载、重写、多态
- D3DXMatrixLookAtLH 函数
- C# 中如何自定义事件?
- 一个很有警告性的工艺广告
- GAMELOFT.REGGIE.BUSH.PRO.FOOTBALL.2007.v1.1.3.176x220.K750.J2MEv1.RETAiL
- [Maya学习内容记录]20070730
- 关于C++ , java继承重载
- 试验网站#1搜索引擎优化收录情况记录(断续运行)2007-7-30
- 试验网站#3搜索引擎优化收录情况记录2007-7-30
- 内存共享--心中永远的痛!
- eclipse 插件安装 之 Refresh
- Java反射机制(摘)
- JS资料1
- 生活是不公平的——盖茨的11条箴言
- JS资料2