Java中子类能继承父类所有的数据和方法么

1.子类可以继承父类的哪些数据域和方法

子类继承它的父类中所有可访问的数据域和方法

先说实例数据域:

  • private修饰的实例数据域不能被子类继承,但是子类可以调用父类提供的访问器和修改器进行访问和修改
  • 无修饰符的实例数据域可以被子类继承
  • protected修饰的实例数据域可以被子类继承
  • public修饰的实例数据域可以被子类继承

再说静态数据域:

  • private修饰的静态数据域不能被子类继承,但是子类可以调用父类提供的访问器和修改器进行访问和修改

  • 无修饰符的静态数据域可以被子类继承

  • protected修饰的静态数据域可以被子类继承

  • public修饰的静态数据域可以被子类继承

先说实例方法

  • private修饰的实例方法不能被子类继承
  • 无修饰符的实例方法可以被子类继承
  • protected修饰的实例方法可以被子类继承
  • public修饰的实例方法可以被子类继承

再说静态方法

  • private修饰的静态方法不能被子类继承
  • 无修饰符的静态方可可以被子类继承
  • protected修饰的静态方法可以被子类继承
  • public修饰的静态方法可以被子类继承

最后说构造方法

  • 父类的构造方法不会被子类继承,但是可以通过super关键字进行调用

综上,归根结底还是数据域和方法的可见性修饰符问题

2.子类可以重写父类的哪些方法

先说实例方法

  • private修饰的实例方法不能被重写,如果子类中定义的方法在父类中是私有的,那么这两个方法完全没有关系
  • 无修饰符的实例方法可以被重写
  • protected修饰的实例方法可以被重写
  • public修饰的实例方法可以被重写

再说静态方法

  • private修饰的静态方法不能被重写

  • 无修饰符的静态方法不能被重写

  • protected修饰的静态方法不能被重写

  • public修饰的静态方法不能被重写

  • 如果父类中的静态方法在子类中被重新定义,那么在父类中定义的静态方法将被隐藏,可以使用"父类名.静态方法名"调用隐藏的静态方法。但是不能通过这样的方式去访问private修饰的静态方法,因为private修饰的只能在本类中访问

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值