黑马程序员_JavaSE基础10 之 多态 内部类 匿名内部类

----------------------      android培训java培训、期待与您交流!   ---------------------
JavaSE_10  笔记 
                              Java语言基础之  多态 内部类 匿名内部类
 
1、 面向对象特征三之 多态
① 体现形式:父类或接口类的引用指向了子类型对象;就是一个对象对应着不同类型。
② 多态的好处:
   提高了代码的扩展性,前期定义的代码可以使用后期的内容。
③ 多态的弊端:
   前期定义的内容不能使用后期子类的特有内容。
③多态实现的两个前提:
   必须有继承关系:继承或实现;
   必须有覆盖;
④多态的类型判断:
   	public static void method()
	{
		if(a instanceof Cat)  // instanceof用于判断对象的具体类型,只能用于引用数据类型判断
		{
			Cat c=(Cat)a;
			c.catchMouse();
		}
	}
 
2、多态之成员变量的特点:
①注意成员变量没有覆盖,所以若子父类都定义了,发生的是两个变量。
比如: Fu f=new Zi() ; f.num ; //  只会用父类的num变量,若父子没有,报错,也不会用子类的num成员。
②特点:(注意:覆盖只发生在成员函数上,不会发生在成员变量上)
编译时:看父类中是否有调用的成员变量,若有,编译通过,没有,编译失败。
运行时:看父类中是否有调用的成员变量,并运行该所属类中的成员变量。
简单说:编译和运行都参考等号左边。
	
3、多态之非静态成员函数的特点(成员函数会发生覆盖,即一模一样函数,只能存在一个,覆盖)
编译时:看父类中是否有调用的成员变量,若有,编译通过,没有,编译失败。
运行时:只看本类中是否用调用的函数。
简单说:编译看左边,运行看右边。
	
4、多态之静态函数特点:
(静态方法是 隶属于对象的,哪个对象调用就用哪个对象的函数)
编译时:看父类中是否有调用的static方法。
运行时:看父类中是否有调用的static方法。
简单说:编译和运行都参考等号左边。
 
5、面向对象之 内部类
特点:
①内部类可以直接访问外部类中的成员,包括Private。因为内部类持有了外部类的引用, 外部类名.this ;
②外部类要访问内部类中的成员必须要建立内部类对象。
③若内部类成员定义成了static那么,该类也必须是static。
 
使用场合:
分析事物时,发现该事物描述中还有事物,而且这个事物还在访问被描述事物的内容,那么该被描述的事物要被定义成内部类来描述。
6、匿名内部类:前提是必须继承或实现一个类,其实就是一个子类对象。
 new Fu()   // 等同于  class Inner extends Fu ; 
{
Void show(){} // 覆盖父类的方法
}
 
                                                                  2012/9/03     By  Mary_k
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值