黑马程序员----面向对象(中)

[align=center][size=medium][b]多态及抽象类[/b] [/size][/align]
[align=center]---------------------- [url=http://edu.csdn.net/heima]android培训[/url]、[url=http://edu.csdn.net/heima]java培训[/url]、期待与您交流! ---------------------- [/align]
[color=red]多态[/color]
1.什么是多态
多态就是一段代码可以运行出多种形态.
将方法的形参定义为父类类型, 在调用时所有子类对象也都可以传入, 而传入的子类对象不同, 调用的方法也就不同.
2.多态的优点
不必为每一个子类编写功能调用, 所有子类重用一段代码, 提高代码的复用性.
先写的代码可以调用后写的代码, 提高代码的可维护性和可扩充性.

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

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

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

[align=center]---------------------- [url=http://edu.csdn.net/heima]android培训[/url]、[url=http://edu.csdn.net/heima]java培训[/url]、期待与您交流! ---------------------- 详细请查看:[url=http://edu.csdn.net/heima]http://edu.csdn.net/heima[/url][/align]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值