社区
Java SE
帖子详情
关于c++与java在面向对象方面的一些不同的疑问
wabcw
2004-03-25 11:12:21
我写java程序的时候比较少的考虑类的修饰符,最近发觉好像在java里面只有public这个修饰符,而没有象在c++里有的private和protected修饰符。
另外,对于类的成员的修饰符java以上三个都有,在继承之后,子类对父类的成员访问又有什么规则,总之,我的头脑很乱,望大侠比较系统的指正,有详细讲解这方面的资料更好!!
...全文
60
14
打赏
收藏
关于c++与java在面向对象方面的一些不同的疑问
我写java程序的时候比较少的考虑类的修饰符,最近发觉好像在java里面只有public这个修饰符,而没有象在c++里有的private和protected修饰符。 另外,对于类的成员的修饰符java以上三个都有,在继承之后,子类对父类的成员访问又有什么规则,总之,我的头脑很乱,望大侠比较系统的指正,有详细讲解这方面的资料更好!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
vongood
2004-03-26
打赏
举报
回复
gz
SarkSharah
2004-03-26
打赏
举报
回复
我初学Java,以前学过一些C++,我最近在作C++与Java这间的比较,并把不同之处记录下来,写成心得。如果各位有兴趣一起学习,发邮件给我,我的心得双手奉上,并诚邀一同完成。sark_sharah@sina.com
如下是我作的关于继承权限的比较:
C++中,继承有三种方式:
1 公有继承:
class NewClass : public OldClass
对于派生类:基类的公有成员和保护成员可见,基类的私有成员在派生类中不可见;
对于派生类对象:基类的公有成员可见,基类的其他成员不可见。
2 私有继承:
class NewClass : private OldClass
对于派生类:基类的公有成员和保护成员可见,基类的私有成员不可见;
对于派生类对象:基类的所有成员不可见。
3 保护继承:
class NewClass:private OldClass
对于派生类:基类的公有成员和保护成员可见,基类的私有成员不可见;
对于派生类对象:基类的所有成员不可见。
保护继承就是把基类作为一个保护的成员放进派生类里,在派生类里,基类相当于public 型,其开放的部分是可以访问的。对派生类来说,被保护的成员在其对象中是不可访问的,所以派生类的对象中,基类的一切成员都不可访问。
当不明确表示是什么方式时,缺省的继承方式是private,但可以把基类中的公有成员或保护成员说明为派生类的公有成员供派生类的对象调用。
#include <iostream.h>;
class A {
public:
void f() {
cout << "A::f()" << endl;
}
};
class B: A {
public:
A::f;
};
void main () {
B b;
b.f();
}
Java中,继承只有一种方式:
Class NewClass extends OldClass
派生类可以访问基类的公有成员和保护成员,不可访问私有成员;
派生类的对象可以访问基类对象的公有成员和保护成员,不可访问私有成员。
Java的继承相当于C++中的公有继承
muymuy
2004-03-25
打赏
举报
回复
java中的继承方式只有一种:public,与c++的public继承相同。
muymuy
2004-03-25
打赏
举报
回复
java中类的访问级别修饰符有3种:public、default(无修饰符)、private
public:表示任何地方都可以访问该类;
default:同一个package下所有类都可以访问该类;
private:这个修饰符只能用于内嵌类,只能被包容它的类访问;
c++在这方面与java有点区别,除了内嵌类之外,c++的类没有访问级别修饰符,内嵌类的的访问修饰符其实与成员的修饰符一样;
c++中继承方式有4中:public、protected、default(无修饰符)、private
public继承:子类可访问父类的public和protected成员,子类的子类也可以;外部类也可以访问父类的pubic成员;
protected继承:子类可访问父类的public和protected成员,子类的子类也可以;但外部类不能访问父类的任何成员;
private继承:子类可访问父类的public和protected成员,子类的子类不可以,外部类也不可以;
default继承:同private;
还有一种virtual继承,与访问级别无关,我不太清楚,请高手指点。
programer23
2004-03-25
打赏
举报
回复
java中的访问级别为
public : 所有人都可以访问它。
friendly : 只有同包的才可以用。
protected : 只有继承的子类才可以访问。
private : 谁都不可以访问,只能自己用。
Percy_ButtonS
2004-03-25
打赏
举报
回复
public private protected java都有的
什么都不加是默认package级的访问级别.
xhan2000
2004-03-25
打赏
举报
回复
public
protected
无
private
java都有
nkwj
2004-03-25
打赏
举报
回复
你还是找本书看一下吧
C程序员学Java会很快,但一点书也不看还是不行的
xiaokui1120
2004-03-25
打赏
举报
回复
关于java的限定访问权限的修饰符
public:所有的类均可访问,但其他包中的类访问时要import
缺省:只有同一个包中的类可访问
private:只有该类本身可访问,级别最高
protected:同一包中的类或其他包中的子类可访问
private protected:只有子类可访问
RAYLI
2004-03-25
打赏
举报
回复
和 c++ 的阿public 和 private是一样的
zeros
2004-03-25
打赏
举报
回复
java中这public,protected,private种类型是有的,不过类好象不能定义成protected,private类型。
Iforgot
2004-03-25
打赏
举报
回复
继承的规则是子类应该更具体,所以,不允许削弱原有函数的访问权限。
就是说,不能把super类的public函数,重载为private的。但,反过来可以。
总之,不能降低。
Iforgot
2004-03-25
打赏
举报
回复
都有。 private必须是内部类时才可用。
外部类如果时private的,别人没法访问了。 所以,编译器不允许通过。
方法、成员和C++一样,只是写法有点差异。
这3个修饰符的含义,到处都有介绍。
lostyq
2004-03-25
打赏
举报
回复
Java_core说的比较清楚,可以看一下
Java
与C++在
面向对象
部分的
不同
本文介绍了
Java
和
C++
在
面向对象
编程中的类与对象、继承和多态的异同。
Java
中所有代码都在类内,对象声明后需用new创建;
C++
中声明对象即创建,支持多重继承。
Java
的抽象类与接口有特定规定,而
C++
的抽象类通过纯虚函数定义。两者在多态实现和成员访问权限上也有所
不同
。
C++
与
java
的
不同
之处
本文对比了
C++
和
Java
在特性、运行速度、类定义、数组处理、继承、异常处理等
方面
的区别,展示了两者在
面向对象
编程、内存管理、多线程、包管理等
方面
的差异。
【
JAVA
】
JAVA
与
C++
的区别与联系
文章对比了
JAVA
和
C++
在指针、析构函数、线程支持、默认参数等
方面
的
不同
,指出
JAVA
不支持指针运算,而
C++
则支持。
JAVA
有内置的线程支持,而
C++
需要依赖第三方库。此外,
JAVA
的异常处理与
C++
不同
,且
JAVA
是平台无关的语言。
Java
的特性与
C++
的区别
本文比较了
Java
和
C++
的语法特点,包括
Java
的
面向对象
特性、简单性、动态性和跨平台性,以及
C++
的
面向对象
编程、简洁性、灵活性和高效性能。强调了两者在
不同
场景下的适用性。
Java
与
C++
在
面向对象
基本概念上的区分
本文深入探讨了
Java
与
C++
在
面向对象
编程基础概念上的差异,包括类定义、类方法、类与对象的建立与回收机制、重载与继承等
方面
。通过对比,展示了两者在灵活性与严谨性上的
不同
。
Java SE
62,622
社区成员
307,255
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章