JavaSE_day03

1.接口

概述:接口就是一种公共的规范标准,只要符合规范标准,大家都可以通用。

存在的意义:用来定义规范;用来做功能的拓展

1.1接口的特点

接口写法:eg:

public interface 接口名 {} 

实现接口:eg:

public class 类名 implements 接口名 {}
  • 接口不能实例化(创建对象),我们常创建xxxImpl接口实现类去重写接口中的抽象方法

  • 接口的子类:要么重写接口中的所有抽象方法(常用),要么子类也是抽象类。

1.2接口的成员特点

  • 成员变量只能是常量,默认修饰符:public static final

  • 没有构造方法(没有报错是因为使用的是继承的父类Object的构造方法)

  • 成员方法只能是抽象方法,默认修饰符是:public abstract

1.3类和接口的关系

  • 类与类的关系:继承关系,只能单继承,但是可以多层继承。

  • 类与接口的关系:实现关系,可以单实现,也可以多实现,还可以在继承一个类的同时实现多个接口。

  • 接口与接口的关系:继承关系,可以单继承,也可以多继承。

1.4接口中默认方法(Java8)

格式:【public】 default 返回值类型 方法名(参数列表){}

作用:解决接口升级的问题

注意事项:1.默认方法不是抽象方法,所以不强制被重写。但是能重写。

2.如果实现了多个接口,多个方法中存在相同的方法声明,子类就必须对该方法进行重写

1.5接口中静态方法(Java8)

格式:【public】 static 返回值类型 方法名(参数列表){}

注意事项:静态方法只能通过接口名调用,不能通过实现类名或者对象名调用

1.6接口中私有方法

产生原因:当两个默认方法或者静态方法中包含一段相同的代码实现时,程序必然考虑将这段实现代码抽取成一个共性方法,而这个共性方法是不需要让别人使用的,因此用私有给隐藏起来,这就是Java 9增加私有方法的必然性

格式:private 【static】 返回值类型 方法名(参数列表){}

注意事项:默认方法可以调用私有的静态方法和非静态方法

静态方法只能调用私有的静态方法

2.多态

2.1多态的概述

同一个对象,在不同时刻表现出来的不同形态。

2.2多态的前提

  • 要有继承或实现关系

  • 要有方法的重写

  • 要有父类引用指向子类对象

2.3多态中成员访问特点

成员变量:编译看父类,运行看父类 成员方法:编译看父类,运行看子类

2.4多态的好处和弊端

  • 好处:

    提高程序的扩展性。定义方法的时候,使用父类型作为参数,在使用的时候,使用具体的子类型参与操作

  • 弊端:

    不能使用子类的特有成员

2.5多态中的转型

  • 向上转型:父类引用指向子类对象

  • 向下转型:子类型 对象名 = (子类型)父类引用

2.6多态中转型存在的风险和解决方案

风险:如果被转的引用类型变量,对应的实际类型和目标类型不是同一种类型,那么在转换的时候就会出现ClassCastException

解决:变量名 instanceof 类型

判断关键字左边的变量,是否是右边的类型,返回boolean类型结果

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值