• 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的使用并不是任意的对象和类型都能放在一起进行判断的,对象的类型和运算符后面的类型必须要有子父类关系,
    否则的话,编译都不能通过

  • 相关阅读:
    HDU 2896 病毒侵袭 AC自动机
    AC自动机
    BZOJ2337: [HNOI2011]XOR和路径 期望概率dp 高斯
    BZOJ4008. [HNOI2015]亚瑟王 期望概率dp
    BZOJ 2707: [SDOI2012]走迷宫 拓扑+高斯消元+期望概率dp+Tarjan
    CodeForces743E. Vladik and cards 二分+状压dp
    BZOJ 3270 博物馆 && CodeForces 113D. Museum 期望概率dp 高斯消元
    BZOJ1415: [Noi2005]聪聪和可可 最短路 期望概率dp
    CodeForces 167B
    [HEOI2017]分手是祝愿 期望概率dp 差分
  • 原文地址:https://www.cnblogs.com/bigorangehasc/p/8639309.html
Copyright © 2020-2023  润新知