首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

黑马软件工程师-面向对象(中)

2012-08-30 
黑马程序员----面向对象(中)多态及抽象类 ---------------------- android培训、java培训、期待与您交流! --

黑马程序员----面向对象(中)
多态及抽象类
---------------------- android培训、java培训、期待与您交流! ----------------------
多态
1.什么是多态
多态就是一段代码可以运行出多种形态.
将方法的形参定义为父类类型, 在调用时所有子类对象也都可以传入, 而传入的子类对象不同, 调用的方法也就不同.
2.多态的优点
不必为每一个子类编写功能调用, 所有子类重用一段代码, 提高代码的复用性.
先写的代码可以调用后写的代码, 提高代码的可维护性和可扩充性.

抽象类
一.什么时抽象方法?
要创建一个体现某些基本行为的类,并未该类声明方法,但不能在该类中实现该行为,
取而代之,在子类中实现该方法。只给出方法定义而不具体实现的方法被称为抽象方法。
抽象方法是没有方法体的,就是没有“{ }”。

二.抽象方法的特点?
1.抽象方法一定在抽象类中。
2.抽象方法和抽象类都必须被abstract关键字修饰。
3.抽象类不可以用new创建对象,因为调用抽象方法没有意义。
4.抽象类中的抽象方法要被使用,必须由子类复写起所有的抽象方法,建立子类对象调用,
如果子类只覆盖了部分抽象方法,那么该子类还是一个抽象类。
5.抽象类不可以实例化,就是new
三.好处
1,。强迫你去重写抽象类中的方法
四 .应用场景
当我们定义一个父类的时候, 希望该类的所有子类对象都具有某个方法时, 就可以定义一个抽象类, 然后定义抽象方法.
我们定义一个类, 不希望创建这个类的对象时, 就可以使用抽象类.
内部类
1.什么是内部类
在类中的类就是内部类
* 2.在类级别下定义的内部类
在一个类中定义另一个类, 这个内部类就是外部类的一个成员
必须先创建外部类对象才能创建内部类对象
内部类中可以访问外部类的成员, 使用"外部类名.成员名"形式访问
内部类可以访问外部类的成员, 但是外部类不能访问内部类的成员
内部类中不能有静态成员, 因为静态的本意就是不用创建对象就能使用, 而内部类是必须创建一个外部类对象, 他们互相矛盾
应用场景:
当定义一个类的时候, 希望创建这个类对象之前先创建别的类对象时, 就可以把这个类定义为那个类的内部类.
当我们定义一个类的时候, 希望在这个类中使用另一个类的成员时, 可以定义为内部类
在方法中定义的内部类
如果一个类只在某个方法中使用, 那么就可以在该方法中定义.
方法中的内部类也可以访问外部类的成员, 和类中的内部类一样, 都是使用"外部类名.this.成员名"
* 方法中的内部类如果访问方法中的局部变量, 这个变量必须声明为final的
匿名内部类
一个类如果只使用一次, 那么就可以定义为匿名内部类.
定义方式: new 父类名(){类定义}
这样做是先声明了一个指定父类的子类, 然后用这个子类创建了一个对象
静态内部类
静态内部类可以不创建外部类对象直接创建内部类对象
静态内部类中可以声明静态成员
静态内部类中不能访问外部非静态成员

模板设计模式
1.什么时候用模板设计模式
在进行多次工作的时候, 每次都有一部分工作相同, 有一部分不同的时候, 就可以使用模板设计模式.
2.怎么用模板设计模式
定义一个抽象类
定义模板方法, 用final修饰, 禁止子类重写该方法
其中每次都不变的代码先写好, 每次不同的代码放在一个抽象方法中
使用模板的时候, 创建抽象类的子类, 重写抽象方法, 然后调用模板方法

---------------------- android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima

热点排行