java面向对象(继承与多态)

一、继承

继承的概念

继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。

在这里插入图片描述
虽然食草动物和食肉动物都是属于动物,但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。

继承的使用

在Java中继承的关键字是extends
把公共属性和行为提取出来放在父类,由子类扩充父类来实现更多的特性,这样就节约了很多代码,程序变得更加简洁,而且容易扩充。

例如

class 父类 {
    
    
}
 
class 子类 extends 父类 {
    
    
}

需要注意的是 Java 不支持多继承,但支持多重继承。

在这里插入图片描述

二、多态

多态是同一个行为具有多个不同表现形式或形态的能力。

多态的优点:

  1. 可替换性
  2. 可扩充性
  3. 接口性
  4. 灵活性
  5. 简化性

多态存在的三个必要条件

  1. 继承
  2. 重写
  3. 父类引用指向子类对象

方法覆盖(重写)

子类需要对父类的运转方法加以改进,变成子类自己的运转方法,这就需要在子类中重新编写运转方法,覆盖父类的运转方法,这种做法在JAVA中叫做方法的覆盖

例如在父类中定义

public String show(){
    
    
    return "";
}

而在子类中

public String show(){
    
    
        return "名称:"+super.getName()+"\n价格:"+super.getPrice()+"元"+"\n大小:"+super.getSize()+"寸";
    }

方法的重载和重写的区别:
重载可以发生任何一个类,而重写则只能是子类重写父类方法。

Super关键字

Super关键字引用当前对象的直接父类中的属性和方法(用来访问直接父类中被隐藏的属性和方法,经常在基类与派生类中有相同属性和方法定义时使用)
除了调用父类同名方法外,super还广泛的运用于构造方法内。
我们可以自由书写super(),要遵循一定的原则:
1.super要放在第一行
2.super所指引的构造方法在父类中必须要有。

public PizzaSeafood(String name,int size, int price) {
    
    
        super(name,size, price);
        ...
    }

Final关键字

  1. final修饰类,那么这个类就不能被继承。
    在这里插入图片描述在这里插入图片描述

  2. final修饰方法,那么这个方法就不能被重写。
    在这里插入图片描述在这里插入图片描述

  3. final修饰属性那么属性值不能在被修改,

  4. final修饰变量,如果变量一旦被赋值,那么变量无法被修改

猜你喜欢

转载自blog.csdn.net/s001125/article/details/110095492