Gorilla带您学java之面向对象之继承

继承

想必大家都知道面向对象有三大特性:
继承
封装
多态
今天我们就来学习学习继承。
什么是继承呢?
打个比方继承就将您父母的家产转到您的名下,这就是现实中比较通俗的继承。
那么java中的继承是干什么的呢
比如有一个动物类,然后有一个猫类。动物是可以有年龄和姓名的,猫也是。那么猫就可以继承动物类
代码如下:

class Animal{
    String name;
    int age;
}
class Cat extends Animal{

}
// 使用extends关键字

这就是一个很简单的继承。

那么我们为什么要使用继承呢,继承有什么好处呢?
1.减少代码量
2.提高工作效率
3.增强代码的复用性

那继承有什么特点呢?
继承的特点:
1.继承链
2.继承有传递性
3.继承 属性 和 行为
4.建立类与类之间的关系(继承关系)

而且java中的继承都是单继承的。
就是说extends后面只能有一个类

那为什么不用多继承呢?
若为多继承,那么当多个父类中有重复的属性或者方法时,子类的调用结果会含糊不清,因此用了单继承。

Tips:构造方法是不能继承的,因此每写一个继承的类时,最好将无参和有参构造方法重写一下。而且为了保证子类的完整性,创建对象的时候会默认调用父类的无参构造方法。

方法重写

方法的重写(Override)
前提:类与类之间必须建立继承的关系
作用:相当于对原方法功能上的一个提升
写法:方法和父类的完全一致

class Test1{
    public void fun() {
        System.out.println("i am test1's fun");
    }
}
class Test2 extends Test1{
    // 重写fun方法
    @Override
    public void fun() {
        /*
         * 可以在重写方法中 调用父类的原方法
         * 可以让功能进行升级
         */
        super.fun();
        System.out.println("i am test2's fun");
    }
}

有继承关系才能重写,且写法要一致

final修饰符

特点
1.修饰变量 变量不能更改 (相当于吧变量变成了常量)
2.修饰方法 方法不能被重写
3.修饰类 类不能被继承

// 因此可以用final定义静态常量
public static final int MAX_VALUE = 10;

猜你喜欢

转载自blog.csdn.net/qq_37113621/article/details/82153566
今日推荐