zoukankan      html  css  js  c++  java
  • java学习--基础知识进阶第三天--笔记

    今日内容
    接口
    多态

    接口interface
    接口的概述
    接口是比抽象类还抽象的类,因为接口所有的方法都是抽象方法
    接口的由来
    可以解决Java中类单一继承的局限性
    格式:
    interface 接口名 {

    }
    使用
    implements ,类去实现接口

    接口中成员的特点
    成员变量
    只有常量
    默认的修饰符 public static final
    成员方法
    只有抽象方法,没有非抽象方法
    默认修饰符 public abstract
    构造方法
    没有构造方法

    类与接口之间的关系
    类与类:继承关系(extends),单一继承,多层继承
    类与接口:类实现(implements)接口(interface),一个类可以实现多个接口
    接口与接口:继承关系(extends)多继承(一个接口可以继承多个接口),多层继承

    接口的优点
    (1)解决了单一继承的局限性
    (2)对外提供规则
    (3)降低了程序的耦合性(可以实现模块化开发,定义好规则,每个人实现自己的模块,提高了开发的效率)

    接口与抽象类之间的区别
    (1)定义上不同
    接口是interface关键字定义的
    抽象类是abstract class关键字定义的
    (2)与类之间的关系不同
    接口与类,类实现接口,可以多实现
    抽象类与类,继承关系,只能单一继承,不能多继承,但是可以多层继承
    (3)成员的不同
    成员变量
    接口:没有成员变量,只可以有常量,默认修饰符public static final
    抽象类:可以有成员变量,也可以有常量
    成员方法
    接口:没有非抽象方法,只可以有抽象方法,它的抽象方法是有默认修饰的,public abstract
    抽象类:既可以有非抽象方法,也可以有抽象方法,它的抽象方法是没有默认修饰符的
    构造方法
    接口:没有构造方法
    抽象类:有构造方法,为子类提供

    面向对象的三大特征:
    封装
    继承
    多态

    多态
    什么是多态:多态就是一个事物的多种形态,比如水可以是水,也可以成为冰;猫是一只猫,也是动物

    苏轼曰:横看成岭侧成峰,远近高低各不同

    Java中的多态表现在父类的引用指向子类的对象,比如Animal a = new Cat();

    A:普通类多态定义的格式
    B:抽象类多态定义的格式
    C:接口多态定义的格式

    多态的前提:
    (1)有继承或者实现关系
    (2)有方法重写
    (3)父类的引用指向子类的对象

    多态中成员的特点
    Animal a = new Cat();
    成员变量
    编译时看左边(父类),运行时看左边(父类)
    成员方法(非静态方法)(动态绑定)
    编译时看左边(父类),运行时看右边(子类)
    静态方法
    编译看左边(父类),运行时看左边(父类)

    简而言之:编译看左边(父类),运行时成员方法(非静态方法)看的是右边,其他(成员变量和静态的方法)看的都是左边

    引用类型的类型转换
    向上转型:由小的类型转为大的类型
    Animal a = new Cat();
    向下转型:由大的类型转为小的类型
    Cat c = (Cat)a;

    ClassCastException类型转换异常,将一种类型转为另一种类型,而这两种类型不是同一种类型或者不是父类型

    多态的优缺点:
    优点:
    提高了代码的可维护性
    提高了代码的可扩展性
    缺点:
    多态之后不能访问子类特有的成员

    instancof 运算符,instancof也是一个关键字
    作用是判断运算符前面的对象(或者对象名)是否是运算符后面的一种类型

    格式:
    对象(对象名) instanceof 类型

    注意:instanceof的使用并不是任意的对象和类型都能放在一起进行判断的,对象的类型和运算符后面的类型必须要有子父类关系,
    否则的话,编译都不能通过

  • 相关阅读:
    用友U8 | 【存货管理】提示用户***正在记账,不允许并发。
    用友U8 | 怎么准确查找【采购入库单】、【采购发票】,对应的凭证号?
    用友U8 | 中途启用序列号管理,该怎么操作?
    Excel:提取身份证号中的性别
    给jupyter 添加代码自动补全功能
    SQL函数之:截断字符串
    解决Maven子项目提示 ‘parent.relativePath‘ of POM
    公共NTP资源汇总
    iperf3的使用
    ZeroTier的使用
  • 原文地址:https://www.cnblogs.com/bigorangehasc/p/8639309.html
Copyright © 2011-2022 走看看