问题描述
classA//基类{protectedintx=123;}classB:A{}classC:A{staticvoidMain(){Aa=newA();Bb=newB();Cc=newC();a.x=10;//能访问吗?说明理由。b.x=10;//能访问吗?说明理由。c.x=10;//能访问吗?说明理由。}}
解决方案
解决方案二:
protected访问仅限于包含类或从包含类派生的类型c.x=10;可以访问,因为C继承了类A,它是A的派生类型,因此你可以在C中访问a.x;a.x=10;这条语句不可访问,因为在类的外部不可访问类本身的protected字段;b.x=10;这条语句不可访问,虽然类B继承了类A,但在此处,是在类B的外部访问了protected字段,因此不可访问,如果你是在类B的内部访问了字段x,那此时就是可以访问的,但你是在类C中访问了类B的x字段,因此此处是不可访问的.楼主也不是可,1分,你也太吝啬了吧
解决方案三:
完全同意楼上~
解决方案四:
1分.......哈哈!不过知识就不只这1分了.
解决方案五:
哎,惨....幸亏我没回答.完全同意楼上~
解决方案六:
学习了!!
时间: 2024-08-01 07:31:18