Java面向对象-继承浅析

继承:

    就是在已有类的基础上构建出新的类,新的类称为已有类的子类,子类会自动拥有父类所有的非私有的属性和行为,并且还能扩展自己特有的功能。

继承的特点:

    1、java中只支持单继承,不支持多继承

    2、支持多层继承(形成继承体系)

继承需注意的问题:

    1、子类只能继承父类非私有的成员(成员变量和成员方法)

    2、父类的构造方法子类不能继承,但是可以通过super关键字去调用父类的构造

    3、继承体现的是一种“is a”的关系(比如波斯猫是猫的一种,猫是动物的一种),千万不要为了部分功能而刻意的去继承

class A{

    public void a() {

    }

    public void b() {

    }

}

/*class B {

    public void b() {

    }

    public void c() {

    }

}*/

class B extends A {

    public void c() {

    }

}

就像这时候发现B类中出现了与A类中一样的方法b,就去使用继承的话,那么发现a方法也会被继承过来,但是a有可能并不是你想要的功能。

继承中成员变量的关系:

    1、成员变量不同名,正常访问

    2、成员变量同名(就近原则),子类的查找顺序为:子类局部范围->子类成员范围->父类成员范围

继承中成员方法的关系:

    1、成员方法声明不一样,正常访问

    2、成员方法声明一样(方法重写了),子类查找顺序:查找子类->查找父类

继承中构造方法的关系:

    1、构造方法不能被继承,可以通过super关键字访问

    2、子类默认都会访问父类的空参数构造,原因是子类初始化可能会用到父类数据,子类初始化前要完成对父类数据的初始化,子类每个构造方法的第一条语句都是super();。

继承中的方法重写:

    方法重写(override):子类中出现了与父类中方法声明一模一样的方法。

    方法重写的应用:当子类需要父类的功能,而子类本身又有自己的特有功能的时候,需要重写父类的功能,这样既拥有的父类的功能,又保持了自身特有的功能。

    方法重写的注意事项:

        1、子类重写父类方法,访问权限应该大于等于父类权限(最好一致)

        2、重写时方法声明应与父类一模一样

猜你喜欢

转载自blog.csdn.net/u014538417/article/details/80079037