面相对象三大特性之继承
来源:互联网 发布:老年保健数据 编辑:程序博客网 时间:2024/06/05 04:08
1.继承(Inheritance):
Java是单继承的,意味着一个类只能从另一个类继承(被继承的类叫做父类[基类],继承的类叫做子类),Java中的继承使用extends关键字。
PS:
1、子类可以直接访问父类中的非私有的属性和行为。
2、子类无法继承父类中私有的内容。
3、父类怎么来的?共性不断向上抽取而来的。
示例:
- class Person {
- String name;
- int age ;
- }
- class ExtendDemo {
- public static void main(String[] args){
- Student s = new Student();
- s. name = "zhangsan" ;
- s. age = 20;
- s.study();
- Worker w = new Worker();
- w. name = "lisi" ;
- w. age = 30;
- w.work();
- }
- }
- class Worker extends Person{
- void work(){
- System.out.println("worker work..." + age);
- }
- }
- class Student extends Person{
- void study(){
- System.out.println("student study..." + age);
- }
- }
由此可见,对象继承的几个好处:
1、继承的出现提高了代码的复用性。
2、继承的出现让类与类之间产生了关系,提供了多态的前提。
二、对象的特点:
Java只支持单继承,不支持多继承。
一个类只能有一个父类,不可以有多个父类。
原因:因为多继承容易出现问题。两个父类中有相同的方法,子类到底要执行哪一个是不确定的。
Java支持多层继承(继承体系):
C继承B,B继承A,就会出现继承体系。多层继承出现的继承体系中,通常看父类中的功能,了解该体系的基本功能,建立子类对象,即可使用该体系功能。
定义继承需要注意:
不要仅为了获取其他类中某个功能而去继承,类与类之间要有所属("is a")关系。
三、super关键字
表示父类对象的默认引用;
如果子类要调用父类被覆盖的实例方法,可用super作为调用者调用父类被覆盖的实例方法;
使用super调用父类方法;
使用super调用父类的构造方法;
对super的调用必须是构造器中的第一个语句;
因为static修饰的方法属于类,即调用者是类;
在子父类中,成员的特点体现:
1.成员变量
this和super的用法很相似。
this代表本类对象的引用。
this不能出现在static修饰的方法中,super也一样不能出现在static修饰的方法中
super代表父类的内存空间的标识。
当本类的成员和局部变量同名用this区分。
当子父类中的成员变量同名用super区分父类。
示例:
- class Fu{
- private int num = 4;
- public int getNum(){
- return num ;
- }
- }
- class Zi extends Fu{
- private int num = 5;
- void show(){
- System.out.println(this.num + "..." + super.getNum());
- }
- }
- class ExtendDemo{
- public static void main(String[] args){
- Zi z = new Zi();
- z.show();
- }
- }
四、成员函数:
当子父类中出现成员函数一模一样的情况,会运行子类的函数。这种现象,称为覆盖操作,这是函数在子父类中的特性。在子类覆盖方法中,继续使用被覆盖的方法可以通过super.函数名获取。
函数两个特性:
1.重载,同一个类中。
2.覆盖,子类中,覆盖也称为重写,覆写,override。
- class Fu{
- public void show(){
- System.out.println("fu show run" );
- }
- }
- class Zi extends Fu{
- public void show(){
- System.out.println("zi show run" );
- }
- }
- class ExtendDemo{
- public static void main(String[] args){
- Zi z = new Zi();
- z.show();
- }
- }
- 面相对象三大特性之继承
- C++面相对象三大特性
- 面向对象三大特性之 继承
- 面向对象三大特性之继承
- 面向对象三大特性之继承
- PHP面向对象编程三大特性之继承特性
- 36 面向对象的三大特性之继承性
- 黑马程序员----------面向对象三大特性之继承
- java面向对象的三大特性之继承
- 小糖出品:面向对象三大特性之继承
- java基础-面向对象三大特性之继承实例
- Java面向对象三大特性之继承
- java-面向对象编程-三大特性之继承
- 面向对象三大特性之继承(二)
- 【java基础知识】面向对象三大特性之继承
- 面向对象的三大特性之继承
- Java面向对象的三大特性之--《继承》
- javase面向对象三大特性之继承
- 第六章 编程练习 6.1
- MVC Kendo总结之-----> CheckBox
- Android音频录制--AudioRecord
- http: get and response格式
- Archlinux安装vim并配置颜色
- 面相对象三大特性之继承
- jquery validate验证插件
- tomcat会话之持久化会话管理器
- 很迷茫
- 回车与换行的区别
- CF205E-Little Elephant and Furik and Rubik
- HDU 5430 Reflect
- [Linux][ubuntu][Perl]bad interpreter: No such file or directory
- next_permutation