社区
Java SE
帖子详情
关于c++与java在面向对象方面的一些不同的疑问
wabcw
2004-03-25 11:12:21
我写java程序的时候比较少的考虑类的修饰符,最近发觉好像在java里面只有public这个修饰符,而没有象在c++里有的private和protected修饰符。
另外,对于类的成员的修饰符java以上三个都有,在继承之后,子类对父类的成员访问又有什么规则,总之,我的头脑很乱,望大侠比较系统的指正,有详细讲解这方面的资料更好!!
...全文
32
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说的比较清楚,可以看一下
二十三种设计模式【PDF版】
GoF 的《设计模式》是所有
面向对象
语言(
C++
Java
C#)的基础,只不过
不同
的语言将之实现得更方便地使用。 GOF 的设计模式是一座"桥" 就
Java
语言体系来说,GOF 的设计模式是
Java
基础知识和 J2EE 框架知识之间一...
C++
/
Java
之前一直有个
疑问
,
C++
/
Java
都是
面向对象
的高级语言,两者有神马
不同
捏?(抱歉出处不明)
C++
写好的程序只需要进行编译链接,就可以在专用的平台上运行。
Java
一次编译后,就可以随处运行,但是需要运行在
Java
...
朱老师
C++
第2部分-2.1.会C语言就能学会
面向对象
涵盖了
C++
基础语法和使用,
面向对象
,STL与泛型,Boost库和设计模式,
C++
编程优化技巧等非常广泛的内容,是市面上非常缺少的深度完整学习
C++
,培养编程技能和修养的一套系列学习课程。整个课程预计2020年底前录制...
Java
——
面向对象
程序设计的一些总结(封装、继承、多态)
Java
是一门
面向对象
的语言,本文对
面向对象
的三大特征——封装、继承、多态做了详细的介绍。
Java
教程 什么是
面向对象
最通俗讲解
Java
教程系列之
面向对象
你要悄悄的努力,然后...实际上,
面向对象
的思想在这些语言之间是类似的,只是
不同
语言在一些语法上会有
不同
。所以如果将一门
面向对象
语言学精通,再入门其他语言也会更容易。 2.我是谁? 我
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章