Java Web知识Java基础Java 专栏

Java基础知识4-继承

2016-12-18  本文已影响17人  我相信你爱过gg

继承也是面向对象的特征之一,使用extends关键字.

class Person {

}

class Student extends Person {

}

Student类继承Person类,Person类称为父类也称为基类,Student类称为子类也称为派生类.

继承的好处:

1.提高了代码的复用性.
2.让类与类之间产生,给多态提供了前提.

注:Java中支持单继承.不直接支持多继承.

什么时候定义继承

当类与类之间存在所属关系的时候,就定义继承.

子父类中成员变量的特点

先看一个栗子

class Person {
    public int age = 20;
}

class Student extends Person {
    public int age = 30;
    public void show() {
        System.out.println(age + "..." + age);
    }
}

输出结果为30...30
这有就表明当本类的成员变量和局部变量同名用this区分.
当子父类中的成员变量同名用super区分父类.
所以将代码改写成

class Person {
    public int age = 20;
}

class Student extends Person {
    public int age = 30;
    public void show() {
        System.out.println(this.age + "..." + super.age);
    }
}

输出结果就为30...20

this和super

this:代表一个本类对象的引用.
super:代表一个父类的空间.

覆盖

当子父类中出现成员函数一模一样的情况.例如

class Person {
    public int age = 20;
    public void show() {
        System.out.println(this.age);
    }
}

class Student extends Person {
    public int age = 30;
    public void show() {
        System.out.println(this.age);
    }
}

上面的栗子是说方法(函数)名,一模一样而不是方法体.
出现这种情况会运行子类的函数,这种现象称为覆盖操作.这是函数在子父类中的特性.

覆盖注意事项

1.子类方法覆盖父类方法时,子类权限必须要大于或等于父类的权限.
2.静态只能覆盖静态,或被静态覆盖(少见).

函数两个特性

1.重载,在同一个类中.
2.覆盖,在子类中.覆盖也称为重写或覆写.

配图
上一篇 下一篇

猜你喜欢

热点阅读