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都只能定义在第一行。
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对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树