码迷,mamicode.com
首页 > 其他好文 > 详细

六、面向对象之继承

时间:2017-08-20 12:31:50      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:设计   end   表示   对象   变量赋值   extend   extends   style   相同   


1.概念
如果两个或者两个以上的类,具有相同的属性和方法的话,我们可以抽取一个类出来,在抽取出来的类中声明各个类中公有的属性和方法

被抽取出来的类---父类、超类、基类
两个或者两个以上的类---子类、派生类


他们之间的关系----子类继承自父类

2.语法:
父类
访问权限修饰符 class 父类类名{
//公有的属性和对应的方法
}
子类
访问权限修饰符 class 子类类名 extends 父类类名{
特有的属性和方法
}


结论:
子类可以访问到父类中能看见的【在访问权限内的,除了private】所有属性
子类可以访问到父类中能看见的【在访问权限内的,除了private】所有方法
构造方法不能被继承,每个类都应该有自己的独特的构造方法
实例化子类对象的时候,不管调用的是子类的哪一个构造方法,都会默认去调用父类无参的构造方法
一个父类有多个子类
一个子类只能有一个父类【单继承】
类之间,Java支持多重继承不支持多继承
举例说明:A B C
多继承:A exteds B,C【这是不支持的】
多重继承:A extends B B exteds C


3.子类对象实例化的过程
子类对象在实例化的时候,先实例化父类部分,然后实例化子类部分

对象在内存中生成的过程
a.将对象所需的类文件加载入文件
b.在内存中的栈空间开辟相应的空间
c.通过new关键字在对内存中开辟空间
d.将对象中的非静态的成员变量赋值,
e.调用对应的构造方法,给成员变量赋值
f.通过子类的构造方法默认的去调用父类的构造方法,初始化父类部分

4.super关键字
this:表示对当前对象的引用
super:表示对父类对象的引用
a.super.属性 表示访问父类中的成员变量
b.super.方法 表示访问父类中的方法
c.super() 调用父类中的构造方法

super.属性和this.属性获取到的结果一样的【除了private修饰的属性】
super.方法和this.方法相当与调用了同一个方法

注意问题:
尽量避免子类中出现和父类同名的成员变量
如果在子类中出现了和父类中同名的方法,this.方法调用当前类中的方法,覆盖父类同名的方法


this():
a.只能出现在子类构造方法第一行
b.只能出现一次
c.具体调用的是父类中的哪个构造方法,取决于所传的参数
d.this()和super()不能同时出现

 


继承的总结:
1>对于类而言,Java中使用的单继承【一个子类只能有一个父类】
2>要将确实存在继承关系的类设计为继承,可以最大限度上提高代码的复用性
3>子类可以从对应的父类中继承在访问权限内的属性和方法
4>父类中的构造方法不能被子类继承【每个类中都有自己特有的构造方法】

六、面向对象之继承

标签:设计   end   表示   对象   变量赋值   extend   extends   style   相同   

原文地址:http://www.cnblogs.com/lsp-lsp/p/7341917.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!