返回信息流就想问问:java抽象类的构造函数声明为public与protected有何区别?
谢谢各位指教!
这是一条镜像帖。来源:北邮人论坛 / java / #20923同步于 2011/12/1
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
java抽象类的构造函数声明为public与protected有何区别?
byrmaster
2011/12/1镜像同步8 回复
订阅后,新回复会通过你的通知中心匿名送达。
8 条回复
就是public和protected的区别啊
抽象类主要用于被继承,所以构造函数设计为保护的更合理
若设置为共有的,则违背了抽象类的初衷
【 在 byrmaster (byrmaster) 的大作中提到: 】
: 就想问问:java抽象类的构造函数声明为public与protected有何区别?
: 谢谢各位指教!
【 在 buptlong 的大作中提到: 】
: 就是public和protected的区别啊
: 抽象类主要用于被继承,所以构造函数设计为保护的更合理
: 若设置为共有的,则违背了抽象类的初衷
: ...................
谢谢,但是设为public的话这个抽象类也不能被new一个对象出来啊,所以感觉这里public跟protected是一样的,没有区别。
假设 A 为抽象类,A 中有方法 mth1() 这个方法,内部有代码,并且调用一个 abstract 的方法 needImpl(),所有的子类实现这个方法,
如果把这个方法设置为public,那是没有意义的,因为这个方法,只是针对 mth1() 这个方法服务或者说,只有少量的父类使用到了,其他人不需要使用,
那么就应该设置为 protected 这样其他开发人员不需要关注这个方法,甚至不知到这个方法的存在。