封装,继承,多态

一、
1、封装
  该隐藏隐藏,该公开的公开
  属性隐藏,同时提供get/set方法
  有些方法应该隐藏
  方法声明公开,实现隐藏。实现的改变对架构的影响最小
2、继承
  一般->特殊
  单继承:一个类最多只能有一个直接父类。类之间可以形成树状关系
 
  根据访问权限,子类如果可以访问父类的属性和方法,就能继承
  private 私有  不能继承
  default 本类+同包  同包子类可以继承,不同包子类不能继承
  protected 本类+同包+不同包子类  可以继承
  public 公开 可以继承

  方法的覆盖(Override):
  方法名相同,参数表相同,返回值相同,访问修饰符比父类相同或更宽,抛出的异常不能比父类更宽
 
  继承关系下对象的构造过程
  1)递归的构造父类对象
  2)分配本类空间
  3)初始化本类属性
  4)调用本类的构造方法

  super:
  super.  ->父类对象,访问父类被覆盖的方法或者父类被遮盖的属性
  super() ->用在构造方法时,用来指明调用父类的哪个构造方法,放在构造方法的第一行,默认调用父类无参构造方法
 
3、多态
  编译时多态:方法的重载
  运行时多态:
 
  子类对象当作父类对象来用!!!屏蔽同一父类下,不同子类差异
  Animal a = new Dog();
  允许引用类型和对象类型不同,但要求引用类型是对象类型的父类。
  对象类型代表了对象自身客观的实际类型,引用类型代表了主观上把对象当作什么类型来看待。
  引用类型:编译时类型,主观类型
  对象类型:运行时类型,客观类型

  1)对象运行时类型不变
  2)只能对对象调用其编译时类型定义的方法
  3)运行时根据对象类型去匹配对象类型中覆盖之后的方法  
 
  Super s1;
  Sub s2;
  s1=s2;
  s2=s1; //error , s2=(Sub)s2

  强制类型转换:当我们把父类的引用赋值给子类引用的时候,需要强制类型转换。强制类型转换失败:类型转换异常.
  为了避免类型转换异常,使用instanceof判断
  引用 instanceof 类名   引用指向的对象的类型与后面的类名是否兼容
 
  多态的作用:通用编程
            我们可以把不同子类的对象都当作父类对象看待,评比不同子类的差异。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值