首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

请懂得java和c#两门语言的朋友进来看一下.解决思路

2012-01-03 
请懂得java和c#两门语言的朋友进来看一下.c#中如下:usingSystemclassA{voidqq(){BbnewB()b.age33//失

请懂得java和c#两门语言的朋友进来看一下.
c#中如下:
using   System;
class   A
{
void   qq()
{
B   b=new   B();
b.age=33;//失败
}
public   static   void   Main(string[]args)
{
}
}
class   B:A
{
protected   int   age=22;
}

----------------------------------]
java中:
class   A
{
void   qq()
{
B   b=new   B();
b.age=33;//成功
}
public   static   void   main(String[]args)
{
System.out.println( "success ");
}
}
class   B   extends   A
{
protected   int   age=22;
}

想请问一下,此时两种语言的运行机制.


[解决办法]
没搞明白你想问什么?只问机制?还是遇到了问题?
[解决办法]
c# 的 protected 访问权限与 java 不同.
for c#:protected 关键字是一个成员访问修饰符。受保护成员在它的类中可访问并且可由派生类访问
for java: 除了可以由派生类访问外, 还可以由同包的其它类访问. 注意包是java的概念,c#中没有.

[解决办法]
你的代码中class A 是B的父类,而不是子类,所以A不能访问B.

在java中, class A 与 B 都是在同一个包中,所以A可以访问B的protected属性.
[解决办法]
protected控制范围不同

热点排行