欢迎光临
我们一直在努力

JavaSE-08

目录

一.接口

二.类和接口的多种形式

三.接口和抽象类的区别

四.多态

五.多态中成员的特点


一.接口

接口概念

  • 接口也是一种引用数据类型
  • 接口的出现是为了弥补java中只有单继承的不足

接口的定义

  • 与定义类的class不同,接口定义时需要使用interface关键字。
  • 接口和抽象类一样,都不能创建对象。
  • 接口编译之后也是生成 接口名.class 文件。

接口简单使用

  • 类与接口的关系为实现关系,即类实现接口。实现的动作类似继承,只是关键字不同,实现使用implements。

接口中成员变量的特点

  • 接口中可以定义变量,但是变量必须有固定的修饰符修饰,即public static final(不写默认添加)  
  • static可以是通过接口名.变量名来调用
  • final修饰的变量不能重复赋值,因此该变量也称之为常量,后面我们会讲解static与final关键字

接口中成员方法的特点

  • JDK1.7(包含1.7)以前接口中只能有抽象方法

  • JDK1.8(包含1.8)接口中可以有默认方法(实现)

default方法可以被重写也可以不被重写

  • JDK9(包含9)以后可以有私有实现方法

接口中的private方法只能在接口内部调用,不能被子类重写继承。

二.类和接口的多种形式

一个类可以实现多个接口

一个类继承另外一个类同时实现接口

父类实现接口并重写抽象方法,子类可以不重写直接继承

接口可以继承接口被一个类全部实现

三.接口和抽象类的区别

相同点:

  • 都位于继承的顶端,用于被其他类实现或继承;
  • 都不能直接实例化对象; 
  • 都可以包含抽象方法。

不同点:

  • 一个类只能继承一个直接父类(可能是抽象类),却可以实现多个接口;(接口弥补了Java只能单继承的不足)
  • 抽象类中可以定义所有子类共性功能,接口中可以定义拓展功能(部分子类的拓展功能)

四.多态

  • 定义:同一个方法,不同对象调用,会自动变成不同的行为。
  • Java中多态使用前提:需要存在继承或实现关系(子父类或子父接口) 。
  • Java中多态使用:父类引用指向子类对象或父接口引用指向子实现类对象。

多态向上转型(子转父)

向上转型:当有子类对象赋值给一个父类引用时,便是向上转型,多态本身就是向上转型的过程。多态的向上转型分为以下几种格式

  • 普通类向上转型的格式
  • 格式:父类型 引用变量名= new 子类();

  • 抽象类向上转型格式  
  • 格式:抽象父类型 变量名 = new 抽象类子类();

  • 接口向上转型的格式  
  • 格式:父接口类型 变量名 = new 接口实现类();

多态向下转型(父转子)

向下转型:一个已经向上转型的子类对象可以使用强制类型转换的格式,将父类引用转为子类引用,这个过程是向下转型,向下转型的目的为了使用子类特有的方法 

  • 父类型同样可以是 普通类 / 抽象类 / 接口
  • 格式:子类型 引用变量=(子类型)父类型引用变量

五.多态中成员的特点

多态成员变量访问特点

当父类和子类有同名成员变量时,多态调用:

编译:引用变量在所属类中是否有此变量,有编译成功,没有编译失败。

运行:调用是引用变量所属类的成员变量。

多态中成员方法访问特点

当父类和子类有同名成员方法时,多态调用:

编译:引用变量在所属类中是否有此方法,有编译成功,没有编译失败。

运行:调用是引用变量所指的对象所属类并运行对象所属类的成员方法。

赞(0)
未经允许不得转载:171主机测评 » JavaSE-08
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址