八股训练营第 24 天 | 说一说 Java 面向对象三大特性?说一说你对 Java 多态的理解?Java 重载和重写的区别?

说一说 Java 面向对象三大特性?

Java 面向对象三大特性包括:封装、继承和多态。

  1. 封装:将对象的属性和方法结合起来,并隐藏内部的实现细节。只暴露出一个接口供外部访问。通常由访问修饰符 private、protected、public 来控制权限,以实现封装。
  2. 继承:一个子类可以继承一个父类的属性和方法。子类可以重用父类的代码,并且可以新增方法或者修改重写父类的方法。增强了代码的可复用性和可扩展性。Java 支持单继承,一个类只能继承一个父类。
  3. 多态:父类引用可以指向子类对象。允许不同的类的对象对同一消息作出响应。但具体的行为会根据对象的实际类型而有所不同。这通常通过方法重载和重写实现。

说一说你对 Java 多态的理解?

把一个子类对象直接赋值给父类引用变量,运行时调用引用变量的方法,其方法的行为总是表现出子类方法的行为特征,而不是父类方法的行为特征。即同一类型的变量在调用同一方法时,表现出不同的行为特征,这就是多态。

多态包括编译时多态和运行时多态。

编译时多态是在编译时就已经确定了调用的方法。这是由方法的重载实现的。编译器会根据方法参数的个数、类型或顺序调用合适的方法。

运行时多态是在运行时根据对象实际的类型来确定调用的方法。这是由方法的重写实现。运行时多态依赖与对象的实际类型,而不是引用类型。

Java 重载和重写的区别?

重载和重写是实现 Java 多态的两种不同的方式。

重载是编译时多态。它允许一个类有多个同名方法,但是这些方法的参数列表不同,可以有不同的返回类型和访问权限。通过静态绑定实现。

重写是运行时多态。它允许子类重新定义父类的方法。但是方法的名称、参数列表和返回类型都必须相同。重写的方法的访问级别要大于被重写的方法,返回类型和抛出异常的范围要小于被重写的方法。JVM 在运行时会根据对象的实际类型来确定调用哪个方法。

总结一下,重载是运行一个类有多个同名方法,重写是允许子类提供特定于其父类的行为实现。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值