qq_35436516
JHCan333
采纳率79.5%
2016-10-08 10:15 阅读 4.3k
已采纳

父类和子类中属性同名但不同类型怎么处理啊?

20

在父类中有private int a;
在子类中有private Object a;
然后在后面的方法返回值类型上就出错了,有冲突,怎么解决啊?本人新手,请大神指教

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

6条回答 默认 最新

  • 已采纳
    tb176 IT丶小农民 2016-10-08 10:30

    1、更改子类属性名程,不然系统默认你是重写父类的方法,因为返回类型不一致所以报错。
    2、首先要看该方法的使用范围,
    如果是private,那么这样定义是没有问题的。
    如果不是private的。我们知道,子类是可以访问父类的非private方法。这样的话,如果子类有和父类同名不同返回类型的方法,就相当于在一个类中有两个同名不同返回类型的方法,这在java中犯了二异性的错误,是不允许的。

    点赞 1 评论 复制链接分享
  • oSanYeCao1234567 RoidCoder 2016-10-08 10:20

    父类中private的属性或者方法,子类是无法继承的,所以,应该不会有影响吧。我刚才验证了下啊,确实没有问题的

    点赞 1 评论 复制链接分享
  • qq_29594393 当作看不见 2016-10-08 10:34

    private 属性是不会继承的,也是不会有冲突的,把那个方法贴出来看一下

    点赞 1 评论 复制链接分享
  • zhang_zhao183 张小-北 2016-10-09 02:45

    private 私有的,
    表示这个是你父类独有的属性,
    其实你这样写也是没错的啊,只是在调用的时候小心类型就行
    如果你要写什么拼字符串的,可以在方法中强制类型转换

    点赞 1 评论 复制链接分享
  • sixeleven MartinSE 2016-10-08 10:15

    难倒不应该把子类的属性名修改掉么,你是什么语言啊

    点赞 评论 复制链接分享
  • qq_16576133 FzPying 2016-10-08 11:10

    这样同名的方法会默认为是继承父类的方法并重写

    点赞 评论 复制链接分享

相关推荐