面向对象三大特性-多态性

发布时间 2023-10-26 16:36:39作者: 柒酒

1.如何理解多态性?

理解:理解为一个事物的多种形态

2.Java中多态性的体现:

子类对象的多态性:父类的引用指向之类的对象。(或子类的对象赋给父类的引用) 比如: Person p2 = new Man();

3.多态的应用:

多态性的应用:虚拟方法调用 在多态的场景下调用方法时,编译时,认为方法是左边声明的父类类型,(即被重写的方法) 在执行时实际执行的是子类重写父类的方法 简称为:编译看左边,运行看右边。

4.多态的前提:

①.要有类的继承关系

②.要有方法的重写

5.多态的适用性:

适用于方法,不适用于属性

6.多态的好处与弊端

6.1弊端:

在多态的场景下,我们创建了子类的对象,也加载了子类特有的属性和方法,但是由于声明为父类的引用, 导致我们没有办法直接调用子类特有的属性和方法。

6.2好处:

极大的减少了代码的冗余,不需要定义多个重载的方法。

举例:

class Account{}

class CheckAccount extends Account{
    //存在方法的重写
}
class SavingAccount extends Account{
    //存在方法的重写
}

class Customer{
 Account account;

 public void setAccount(Account account){
    this.account=account;
 }
}

7.instanceof的使用

/*

  • 1.建议在向下转型之前使用instanceof进行判断,避免出现类型转换异常

  • 2.格式: a instanceof A :判断对象a是否是类A的实例

  • 3.如果a instanceof A 返回true,则

  • a instanceof superA 返回也是true。其中,A是superA的子类

  • */