java继承中,为什么成员变量可以隐藏,而方法不可以了?反过来,为什么方法可以覆盖而成员变量不可以了?

一起来玩玩呗 2012-10-05 12:17:01
如题:
希望各位大牛们,多说点啊
...全文
247 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
一起来玩玩呗 2012-10-06
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
您好,很高兴为您解答。
Java中的继承呢,是继承其直接父类或间接父类中的成员,这永远不会出错,类的成员包括属性、方法、构造器(构造方法)、初始化快、内部类、内部接口和枚举类。在继承中,有个很大的注意点,那就是访问权限修饰符,对于不同的类成员,它各自所允许使用的访问权限修饰符是不同的,比如说,在类中的属性,能使用如下几种:public、protected、private、若不写,则就是”友好的“……
[/Quote]
貌似明白了,如果方法中也加了修饰符private 的话,那么方法是不是也被隐藏了?
cc不会飞 2012-10-06
  • 打赏
  • 举报
回复
替楼上回答一下,是的,凡是加了private修饰符的,都会隐藏起来的
[Quote=引用 4 楼 的回复:]
引用 3 楼 的回复:
您好,很高兴为您解答。
Java中的继承呢,是继承其直接父类或间接父类中的成员,这永远不会出错,类的成员包括属性、方法、构造器(构造方法)、初始化快、内部类、内部接口和枚举类。在继承中,有个很大的注意点,那就是访问权限修饰符,对于不同的类成员,它各自所允许使用的访问权限修饰符是不同的,比如说,在类中的属性,能使用如下几种:public、protected、private……
[/Quote]
kottar 2012-10-05
  • 打赏
  • 举报
回复
您好,很高兴为您解答。
Java中的继承呢,是继承其直接父类或间接父类中的成员,这永远不会出错,类的成员包括属性、方法、构造器(构造方法)、初始化快、内部类、内部接口和枚举类。在继承中,有个很大的注意点,那就是访问权限修饰符,对于不同的类成员,它各自所允许使用的访问权限修饰符是不同的,比如说,在类中的属性,能使用如下几种:public、protected、private、若不写,则就是”友好的“,关于这几种访问权限修饰符的用处,这里就简略说一下:
对于继承中属性和方法:
[1]父类中的public、protected、”友好的“(即不写)修饰的,子类都会继承,若子类中有同名的属性,则子类会覆盖父类的;
[2]父类中的private修饰的,由于子类不可能访问,当然不会被子类所覆盖,当然是隐藏在了父类当中了,这个就是体现了面向对象的封装。
注:要想在子类中访问父类的方法和属性,使用super.xxxx来访问。
一起来玩玩呗 2012-10-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
还是没太明白你的问题,你指的隐藏是private么?
如果是的话。
几个注意点。

1. 被继承的父类中的方法是可以隐藏的,只不过被隐藏的方法是没办法被子类继承的,等于是父类自己要用的
私有类。(你都把他隐藏了,子类如何继承?)

2.因此可以推导出,如果要继承的方法,必须不能用private隐藏,这点成员变量和方法是一致的。你可以把父类中的变量和方法都申明成private,那么继承……
[/Quote]
我的意思是在继承中对成员变量隐藏而对方法是覆盖,为什么对方法是覆盖而不是隐藏?同样成员变量可以覆盖吗?为什么只能进行隐藏,而没有覆盖了?
Lunix_Centos 2012-10-05
  • 打赏
  • 举报
回复
还是没太明白你的问题,你指的隐藏是private么?
如果是的话。
几个注意点。

1. 被继承的父类中的方法是可以隐藏的,只不过被隐藏的方法是没办法被子类继承的,等于是父类自己要用的
私有类。(你都把他隐藏了,子类如何继承?)

2.因此可以推导出,如果要继承的方法,必须不能用private隐藏,这点成员变量和方法是一致的。你可以把父类中的变量和方法都申明成private,那么继承他的子类是覆盖不了的,等于没有继承这个方法。

3.成员变量是可以覆盖的,不过现在都有get, set了,所以这个意义不大没必要纠结。

62,621

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧