JAVA基础知识点11-多态、多态的调用、面向对象、abstract、接口

多态引用调用时候,对子类新增成员不可见
多态前提下,想要调用子类的新增内容怎么办-->向下转型

转型: 基本数据类型类型转换  Cast
    孔子装爹:
        孔子爹类: class 孔子爹{void teach(){做生意..}}
        孔子类 : class 孔子 extends 孔子爹{void teach(){讲论语..}; void play(){吃鸡...}}
        一个人来找孔子爹去授课,但是不巧,孔子爹外出..,只有孔子在家
        --多态
        --向上转型: 从小到大  --> 自动类型提升
        孔子决定化妆:装成孔子 爹的样子去授课
        孔子爹 k = new 孔子();
        k.teach();  //调用的是子类中重写的方法

        --想要调用子类中独有的内容
        --向下转型 : 强制类型转换    long l = 1;  int i = (int)l;
        孔子想和学生一起打游戏,但是孔子爹不会游戏,只能卸妆,变回孔子,才能使用孔子的能力打游戏
         小范围类型 变量 = (小范围类型)大范围类型的数据;
         孔子 kk = (孔子)k;
         kk.play();


注意:
    转型可能会遇到一种异常java.lang.ClassCastException 类型转换异常
    运算符: instanceof
        引用 instanceof 类型: 判断前面的引用指向的对象是否为后面类型的对象,或者前面的引用是否指向后面类型子类的对象,如果是返回true,不是返回false
            编译:只检查前面的引用与后面的类型是否在一条继承体系上,如果在编译就不报错,不在编译就报错

 

面向对象三大特性之一: 多态
    一种事物的多种形态|表现形式

多态的前提:
    继承|实现

多态的最终体现:
    父类的引用指向子类的对象


多态调用:
    会调用子类中的重写方法
    对子类新增不可见

    多态调用成员方法: 编译看父类|左边|类型,运行找子类|右边|对象
    多态调用成员变量: 编译运行看父类|左边|类型

 

抽象: abstract
    抽象方法: 被abstract修饰的方法就是抽象方法
        没有方法体
        必须存在与抽象类中
    抽象类: 被abstract关键修饰的类就是抽象类

开发部门:
    java攻城狮 : work(){服务器端开发}
    前端程序猿 : work(){网页开发}
    开发部: Develop  work()

 注意:
    1.抽象类是不能实例化
    2.抽象类中可以定义抽象方法,也可以定义具体方法,还可以定义任意内容
    3.抽象类的使用:通过子类使用
        1.具体的子类继承抽象类:重写里面所有的抽象方法+按需扩展
        2.抽象子类: 按需重写抽象方法+按需新增

    4.抽象方法: 必须被重写才能使用
    5.抽象方法一旦被重写就不需要再次重写,但是可以根据需要进行重写
    6.abstract关键字不能跟 private,final,static,native(本地)一起使用

 

接口:
    特殊的抽象类
    一个引用数据类型
    功能的集合
    接口可以多实现,类只能单继承
    解耦(耦合度: 联系)
    定义开发规范
    提高代码的复用性

    1.定义类class  定义接口  interface
    2.父类中定义子类的共性(属性,功能),接口中定义功能的集合
    3.类继承父类 extends   类实现接口 implements
    4.接口中内容的使用,通过接口的实现类取用
    5.一个实现类需要先继承父类,后实现接口
    6.类与类之间只能继承,接口与类之间只能实现,类去实现接口,接口与接口之间只能继承,可以多继承
    7.接口能实例化么??? 不能


    接口中的内容比较局限|特别:
        jdk1.7及之前
            1.公共的静态的常量
                默认public static final 修饰
            2.公共的抽象的方法
                默认public abstract 修饰

        jdk1.8之后新增
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值