Java面向对象理解

本文最后更新于:2023年10月17日 下午

⾯向对象因为有了封装继承多态的特性,可以设计出低耦合的系统,使得系统更灵活、容易维护。

  • 封装是指封装成抽象的类,并且对于可信的类或者对象,是可以操作的,对于不可信的进⾏隐藏。
  • 继承是指可以使⽤现有类的所有功能,⽽且还可以在现有功能的基础上做拓展。
  • 多态是基于继承的,他是指⽗类中定义的属性和⽅法被⼦类继承之后,可以具有不同的数据类型或者表现出不同的⾏为,使得同⼀个属性在⽗类及其⼦类中具有不同的含义。

重载就是多态的⼀个例⼦,是编译时的多态。其实我们所说的多态是运⾏时多态,也就是说编译的时候不确定调⽤哪个具体⽅法,⼀直延迟到运⾏时才可以确定,所以多态又叫延迟⽅法。

Jva实现多态有3个必要条件:继承、重写和向上转型。只有满足这3个条件,开发人员才能够在同一个继承结构中使用统一的逻辑实现代码处理不同的对象,从而执行不同的行为。

  • 继承:在多态中必须存在有继承关系的子类和父类。
  • 重写:子类对父类中某些方法进行重新定义,在调用这些方法时就会调用子类的方法。
  • 向上转型:在多态中需要将子类的引用赋给父类对象,只有这样该引用才既能可以调用父类的方法,又能调用子类的方法。

重载和重写都是实现多态的⽅式,区别是啥?

区别在于重载是编译时多态,重写是运⾏时多态。

  • 重载(overloading)是在一个类里面,方法名字相同,而参数不同。返回类型可以相同也可以不同。每个重载的方法(或者构造函数)都必须有一个独一无二的参数类型列表。
    最常用的地方就是构造器的重载。
  • 重写发生在子类与父类之间,重写方法返回值和形参都不能改变,与方法返回值和访问修饰符无关,即重载的方法不能根据返回类型进行区分。即外壳不变,核心重写!

Java面向对象理解
https://baymax55.github.io/2023/10/17/java/Java面向对象理解/
作者
baymax55
发布于
2023年10月17日
许可协议