多态与抽象类

  • 多态的概念

    • 主要指同一种事物表现出来的多种形态.
  • 多态的语法格式

    • 父类引用指向子类对象
  • shape和rect类的实现

  • 多态的特点

    • 当父类类型的引用指向子类类型的对象时,父类类型的引用可以直接调用父类的方法
    • ,但是不可以直接调用子类独有的方法.
    • 对于父子类都有的非静态方法发了来说,编译阶段调用父类版本,运行阶段调用子类重写的版本
    • 对于父子类都有的静态方法来说,编译和运行阶段都调用父类版本
  • 引用数据类型之间转换的方式

    • 引用类型之间的转换方式有两种:自动类型转换和强制类型转换
    • 自动类型转换主要是指小类型向大类型的转换,也就是子类转为父类,叫做向上转型
    • 强制类型转换主要是大到小的转换,也就是父类转为子类,也叫做向下转型或显示类型的转换
    • 引用类型之间的转换必须发生在父子类之间   父子类关系
  • 引用数据类型转换之间的注意事项

    • 若强转的目标类型并不是该引用真正指向的数据类型是则编译通过,运行阶段发生类型转换异常
    • 为了比避免上述错误大的发生,应该在强转之前进行判断,格式如下:
    • if(引用变量 instanceof 数据量类型)
    • 判引用变量指向的对象是否后面的数据类型
  • Rect对象特征的打印

  • 多态的实际意义

    • 多态的实际意义在于屏蔽来了不同子类的差异性实现通用的编程带来不同的效果.
  • 抽象方法和抽象类的概念

    • 不能具体实现的方法  使用abstract关键字修饰  , 也就是没有方法体
    • 具体格式     访问权限 abstract 返回值类型   方法名(形参列表);
    • public abstract void cry();
  • 抽象类的概念

    • 抽象类主要指不能具体实例化的类并且使用abstract关键字修饰,也就是不能创建对象.
  • 抽象类和抽象方法的关系

    • 抽象类中可以有成员变量,构造方法,成员方法;
    • 抽象类中可以没有抽象方法,也可以有抽象方法;
    • 拥有抽象方法的类必须是抽象类,真正意义上的抽象类应该是具有抽象方法并且使用abstract关键字修饰的类
  • 抽象类的实际意义

    • 抽象类的实际意义不在于自身创建对象而在于继承.   多态   指向子类的对象
    • 当一个类继承抽象类后必须重写抽象方法,否则该类也变成抽象类,也就是抽象类对子类具有强制性和规范性,因此叫做模板设计模式
  • 开发经验分享

    • 在以后的开发中推荐使用多态的格式,此时父类类型引用直接调用的所有方法一定是父类拥有的方法,若以后更换子类时,只需将new关键字后面的子类类型修改为而其他地方无需改变就可以立即生效,从而提高了代码的可维护性和拓展性.

    • 该方式的缺点是  :  父类的
    • 笔试考点

    • private 和 abstract 关键字不能共同修饰一个方法
    • final修饰的   不能被重写
    • static 不能共存  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值