Java基础笔记 – 面向对象三个特征 继承、封装、多态及编程细节提示
本文由发表于6年前 | Java基础 | 评论数 1 |  被围观 10,984 views+
1、封装(Encapsulation):1.1、对象在堆中的分配:new关键字所做的工作:方法与属性的分配:1.2、封装中的构造方法:重载:使用this():2、继承(Inheritence):2.1、继承中的构造方法:继承关系中构造方法的调用:使用super关键字:2.2、继承中父类与子类的关系:2.3、继承中需要注意的:2.4、继承中的方法重写:3、多态(Polymorphism):3.1、使用多态调用方法:3.2、多态中的两种类型转换:

面向对象三个特性:继续(Inheritence)、封装(Encapsulation)、多态(Polymorphism)

1、封装(Encapsulation):

类包含了数据与方法,将数据与方法放在一个类中就构成了封装。

1.1、对象在堆中的分配:
new关键字所做的工作:
① 为对象开辟内存空间
② 调用类的构造方法
③ 将生成的对象的地址返回
方法与属性的分配:

如果一个类包含了属性和方法,那么该类的每一个对象都有自己的属性,但是无论有多少个对象,这些对象共享一个方法。

1.2、封装中的构造方法:
重载:

构造方法重载时,只需看参数即可。

使用this():

在一个构造方法中调用另外一个构造方法,可以使用this(),this()中的参数根据调用的构造函数确定。this()语句必须作为构造方法的第一条语句。

2、继承(Inheritence):

Java是单继承的,意味着一个类只能继承一个父类,使用extends关键字。

2.1、继承中的构造方法:
继承关系中构造方法的调用:

生成子类对象时,Java默认地首先调用父类的不带参数的构造方法,并执行该构造方法,生成父类的对象。接下来才是调用子类的构造方法,生成子类的对象。(即是想要生成子类对象,必须先生成父类的对象,没有父类的对象就没有子类的对象)

使用super关键字:

super表示对父类对象的引用。

使用了super显示的调用父类的某个构造方法后,那么在执行的时候就寻找super()对应的够杂方法而不再寻找父类的不带参数的构造方法。super必须作为构造方法的第一条执行语句。

2.2、继承中父类与子类的关系:
① 父类有的,子类也有
② 父类没有的,子类可以有
③ 父类有的,子类可以改变
2.3、继承中需要注意的:
① 构造方法不能被继承
② 方法和属性可以被继承
③ 子类的构造方法隐式地调用父类的无参构造方法
④ 当父类没有不带参数的构造方法时,子类需要使用super关键字来显示调用父类的构造方法。super指的是父类的引用
⑤ super关键字必须是构造方法中的第一句。
2.4、继承中的方法重写:

当两个方法形成重写关系时,可以在子类中通过super关键字调用父类被重写的方法。此时的super关键字不必放在第一句,而是根据逻辑决定。

3、多态(Polymorphism):

多态指的是父类型的引用可以指向子类的对象。(苹果是水果,足球是球)

Parent p = new Child();
p.execute();
3.1、使用多态调用方法:

当使用多态调用方法时,首先检查父类中是否有被调用的方法,如果没有则编译出错;如果有,再去调用子类的方法。

3.2、多态中的两种类型转换:

① 向上类型转换(upcast):将子类型转换成父类型。对于向上类型转换,不需要显示指定:

Parent p = new Child();

② 向下类型转换(downcast):将父类型转换为子类型。对于向下类型转换,必须要显示指定,使用强制类型转换:

Parent p = new Child();
Child child = (Child)p;

以下的编译不会出错,运行时报错:

Parent p = new Parent();
Child child = (Child)p;
除了文章中有特别说明,均为IT宅原创文章,转载请以链接形式注明出处。
本文链接:http://www.itzhai.com/java-based-notebook-three-characteristics-of-object-oriented-inheritance-encapsulation-polymorphism-and-the-details-of-programming-tips.html
关键字: , , ,
arthinking Java技术交流群:280755654,入门群:428693174 more
分享到:
 
2011 10/25
文章评论
    一条评论
给我留言

有人回复时邮件通知我
Java基础的相关文章
随机文章 本月热门 热评
1 Eclipse的Javascript校验卡住的问题 2014/7/15
2 JVM笔记 – 自动内存管理机制(调优案例分析与实战) 2014/11/30
3 Git分布式文件管理工具与使用GitHub托管项目 2012/6/5
4 系统从实模式跳转到保护模式的基本步骤 2011/5/3
5 JVM笔记 – 走近Java 2014/11/1
6 Java基础笔记 – JDK中提供的观察者模式支持 2011/11/3
友情推荐 更多
破博客 文官洗碗安天下,武将打怪定乾坤。多么美好的年代,思之令人泪落。
Mr.5's Life 白天是一名程序员,晚上就是个有抱负的探索者
行知-追寻技术之美 关注大数据,分布式系统
我爱编程 编程成长轨迹
Cynthia's Blog 学习笔记 知识总结 思考感悟
 
猜您喜欢
欢迎关注我的公众号 IT宅
关于IT宅 文章归档

IT宅中的文章除了标题注明转载或有特别说明的文章,均为IT宅的技术知识总结,学习笔记或随笔。如果喜欢,请使用文章下面提供的分享组件。转载请注明出处并加入文章的原链接。 感谢大家的支持。

联系我们:admin@itzhai.com

Theme by arthinking. Copyright © 2011-2015 IT宅.com 保留所有权利.