您的位置:首页 > 编程语言 > Java开发

java--继承

2016-05-12 21:50 344 查看
继承

1、提到了代码的复用性

2、让类与类之间产生了关系,为第三个特征多态性提供了前提。

java中支持单继承,不直接支持多继承,

单继承:一个子类只能有一个父类

多继承:一个子类不能直接继承多个父类,因为父类中会有相同的成员,造成调用的不确定性。

例:

class A{

void show(syso("a")){}

}

class B{

void show(syso("b")){}

}

class C extends A,B{

不确定调用哪个}

但支持多层继承 C继承B,B继承A,就产生了继承体系。

1、查看该体系的顶层类,了解该体系的基本功能。

2、创建体系中的最子类对象,完成功能的使用。

无论是集合还是IO都是这种分析方式

------------------------------------------------------------------------------------------------------------------------------------------

在子父类中,成员的特点体现

1、成员变量 (局部有就不找成员,一个道理)

当本类的成员和局部变量同名,用this区分。

当子父类的成员变量同名,用super区分父类。

作为了解,开发一般用不到。因为属性给从新写了,不是拿过来用的,所以没必要继承。 

问题:

父类中的私有内容不能被子类直接访问,private 只在本类中有效,但是如果在父类提供了一个public int getNum{return num}在子类中,super.getNum(),即可访问

2、成员函数

函数两个特性:重载在同一个类中。至区分()里边的东西

覆盖,在子类中。覆盖也成为重写。不许子类和父类的方法一模一样,返回值类型相同,函数名一样,参数列表一样。

注意:覆盖的注意事项,子类权限必须大于等于父类。里fu 中public void show{},子类就不能void show;fu--public static void show,子类不能覆盖父类的方法。

3、构造函数

访问子类的构造函数时,父类也运行了,原因就是子类的构造函数中第一行有一个默认的隐式语句。super()

子类的实例化过程,子类中所有的构造函数默认都会访问父类的空参数的构造函数。

如果父类中没有空的构造函数,那么子类的构造函数必须用super明确调用父类中哪个构造函数。

子类中如果使用this调用本类构造函数,那么super就没有了,因为super和this都只能定义在第一行。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java 继承