zoukankan      html  css  js  c++  java
  • 【幻化万千戏红尘】qianfengDay09-java基础学习:接口,抽象类,抽象方法,多态,instanceof

    课程回顾:

    访问修饰符

    private--->default--->protected---->public

    重写:子类中

    1、访问修饰符不能比父类的更严格

    2、静态/非静态、返回值类型、方法名、形式参数类型必须相同

    递归:方法内部出现了自己调用自己

    abstract:关键字 抽象的

    1、修饰类:抽象类

    2、修饰方法:抽象方法

    final:关键字 最终的

    1、类

    不能被继承

    2、变量

    常量

    3、方法

    不能被重写

    今日内容:

    java原则之最佳匹配性原则

    在调用重载方法时,会优先选择最适合的方法

    abstract:关键字 抽象

    1、抽象类:修饰类

    如果遇到某类不能实例化,我们可以将其写成抽象类

    如果某类包含了抽象方法,我们必须将该类写成抽象类

    2、抽象方法:修饰方法

    格式:[修饰符] abstract 返回值类型 方法名([形式参数列表]);

    抽象方法只有方法的声明,没有方法的实现

    abstract不能修饰静态方法

    抽象方法也不能是private

    练习:请写一个类Person,属性若干,有抽象方法studyeat

    并且写若干子类

    创建测试类,创建若干张子类对象调用方法

    接口:是由常量和抽象方法组成的结构体

    接口中的属性:默认拥有 publicstaticfinal

    接口中的方法:默认拥有publicabstract

    interface:关键字 声明接口

    接口的创建格式:

    [修饰符] interface 接口名{

    常量

    抽象方法

    }

    接口不能实例化

    java允许多实现,允许一个类实现多个接口

    implements:关键字 实现

    主要是应用在类中进行实现接口(也就拥有了接口中的方法)

    接口可以继承(extends)多个接口,多个接口之间使用,隔开

    类可以实现(implements)多个接口,多个接口之间使用,隔开

    抽象类和接口的区别?

    抽象类:

    不能实例化

    只能单继承

    可以有普通方法、静态方法、构造方法、属性、静态属性

    可以有抽象方法

    接口:

    不能实例化

    可以多实现

    还可以多继承(接口)

    只能有常量和抽象方法

    在开发中,我们优先选择接口

    抽象类和接口能否作为数据类型使用?

    多态:多种形态

    多态的分类:

    1、静态化(编译时)多态

    重载

    2、动态化(运行时)多态

    重写

    对象转型

    1、向上转型:子类对象可以充当父类对象,自动转换的过程

    父类 对象名=new 子类([实际参数列表]);

    2、向下转型:父类对象可以充当子类对象(父类对象本来就是由子类对象充当的),强制转换的过程

    子类 对象名=(子类) 父类对象名;

    再向下转型之前,一般都使用instancof进行验证,能否转型成功

    instanceof:关键字 验证左边的对象是否为右边的类型

    格式:对象名 instanceof 类名;

    返回值类型为boolean

    常常用来向下转型前的验证

    想向下转型那么一定的先向上转型

    接口回调:声明一个接口类型的变量,通过实现类对象完成变量的实例化,

    最后使用接口变量调用接口中的方法,这一过程我们称为接口回调

    Object类中的equals方法:

    public boolean equals(Object obj)

    ==equals的区别?

    大多数都是没有区别的,都是比较的栈内存的数据

    只有String等类才是有区别

    因为String类对equals方法进行重写,比较的是字符串的内容是否相同

    包装类的equals也都重写了,比较的是内容

  • 相关阅读:
    HDU 4714:Tree2cycle 树形DP
    HDU 4679:Terrorist’s destroy 树形DP
    as 和is的区别
    关于父类引用指向子类对象
    C# new的用法
    Mvc中把list从View传入Controller
    Html.TextBoxFor三元判断
    ref 和out的用法以及区别
    c# datatable list 相互转换
    jquery trigger伪造a标签的click事件取代window.open方法
  • 原文地址:https://www.cnblogs.com/weigongcheng/p/5692499.html
Copyright © 2011-2022 走看看