黑马程序员 2013-4-1 日志

-------android培训java培训、期待与您交流! ----------

今天是个特别的日子。1、已从上家公司正式离职,开始我的java之旅,终于可以专心的学习java了,特别高兴。2、今天是愚人节,你(我的女朋友)一早说中午来找我,一起吃饭,结果过了饭点都不见人影,打个你,你说吃过了。我才意识到今天是愚人节,真笨。

今天的学习内容是面向对象之final、抽象类、模板方法、接口、多态。

final:最终.作为一个修饰符
1,可以修饰 类,函数,变量
2,被final修饰的类不可以被继承,为了避免被继承,被子类复写功能
3,被final修饰的方法不可以被复写
4,被final修饰的变量是一个常量只能赋值一次,既可以修饰成员变量,也可以修饰局部变量
当在描述事物时,一些数据的出现时固定的,那么这时为了增强阅读性,都给这些值起个名字,方便阅读.
而这个值不需改变,所以加上final修饰.作为常量:常量的书写规范:所有字母都大写,如果由多个单词组成
单词间通过下划线"_"连接.
5,内部类定义在类中的局部位置上时,只能访问该局部被final修饰的局部变量.

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

抽象类
当多个类中出现相同功能,但是功能主题不同
这时,可以进行向上抽取.只抽取功能定义,而不抽取功能主体.
特点:
1 抽象方法一定在抽象类中
2 抽象方法和抽象类都必须被abstract关键字修饰
3 抽象类不可以用new创建对象,因为调用抽象方法没意义.
4 抽象类中的抽象方法要被使用,必须由子类复写其所有的抽象方法后,建立子类对象调用
如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类.

抽象类和一般类没有太大不同,只不过是该事物出现了一些不确定的东西.
这些不确定的部分,也是该事物的功能,需要明确出现.但是无法定义主体.
通过抽象方法表示.


抽象指定修饰类和方法.
抽象类比一般类多了抽象函数,就是可以在类中可以定义抽象方法.
抽象类不可以被实例化.

特殊:抽象类中可以不定义抽象方法,这样做仅仅是不让该类建立对象.

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

模板方法:在定义功能时,功能的一部分是确定的,但有一部分是不确定的,而确定的部分在使用不确定的部分,
那么这时就将不确定的部分暴露出去,由该类的子类去完成.

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

接口:初期理解,可以认为是一个特殊的抽象类.当抽象类中的法方都是抽象的,
那么该类可以通过接口的形式表示.
class用于定义类
interface用于定义接口,implement 实现
接口在定义时,格式特点:
1,接口中常见定义:常量,抽象方法.
2,接口中的成员都有固定修饰符
常量:public static final
方法:public abstract
注意:接口中的成员都是public的.
接口是不可以创建对象的,因为有抽象方法,需要被子类实现,
子类对接口中的抽象方法全部覆盖后,子类才可以实例化,否则子类是一个抽象类.

接口可以被类多实现,也是对多继承不支持的转换形式.java支持多实现.

格式:class 类 extends 类 implement 接口1,接口2

继承:java只有在接口间继承时,才支持多继承.类之间继承是不允许多继承的

特点:
接口是对外暴露的规则
接口是程序的功能扩展
接口可以用来多实现
类与接口之间是实现关系,而且类可以继承一个类的同时实现多个接口.
接口与接口之间可以有继承关系.

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

多态:可以理解为事物存在的多种体现形态.
1 多态的体现
父类的引用指向了自己的子类对象
父类的引用也可以接受自己的子类对象
2 多态的前提
必须是类与类之间有关系,要么继承,要么实现.
另一个前提存在覆盖
3 多态的好处
多态的出现大大提高了程序的扩展性.
4 多态的弊端
提高了扩展性,但是只能使用父类的引用访问父类中的成员.
5 多态的应用
我们能转换的是父类引用指向了自己的子类对象时,该引用可以被提升,
也可被强制转换.
多态自始自终都是子类对象在做着变化
6 多态特点(注意事项)
在多态中非静态成员函数的特点:
在编译时期: 参阅引用型变量所属的类中是否有调用的方法.如果有,编译通过,如果没有编译失败
在运行时期:参阅对象所属的类中是否有调用的方法.
总结:成员函数在多态调用时,编译看左边,运行看右边.

在多态中,成员变量的特点:
无论编译还是运行,都参考左边(引用型变量的类)
在多态中静态成员函数的特点:
无论编译还是运行,都参考左边(引用型变量的类)

instanceof 判断所属类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值