面向对象--接口、多态基础

接口

1、定义:是一种标准,规则。
2、关键字:
1、interface :接口
public interface 接口名{}
2、implements :实现
public class 实现类 implements 接口名{}
3、使用:
a.实现类实现接口
b.重写接口中的抽象方法
c.创建实现类对象
d.调用重写的方法

接口的成员

1、成员变量

格式:public static final 数据类型 变量 = 值;
特点:不写public static 默认也有
注意:
  a.static final修饰的成员变量需要手动赋值
  b.习惯上我们会将static final修饰的成员变量的名字大写

2、成员方法

抽象方法

1.定义格式:
  public abstract 返回值类型 方法名(参数);
2.注意:
  不写public abstract 默认也有
3.使用:
  a.定义实现类,实现接口
  b.重写抽象方法
  c.创建实现类对象,调用重写的方法

默认方法

1.格式:
  public default 返回值类型 方法名(参数){
      方法体
      return 结果
  }
2.使用:
  a.定义实现类,实现接口
  b.默认方法可重写可不重写
  c.创建实现类对象,调用默认方法

静态方法

1.格式:
  public static 返回值类型 方法名(参数){
      方法体
      return 结果
  }
2.使用:
  接口名直接调用

默认方法和静态方法-> 都是可以作为临时加的一个小功能来使用

多态

1、前提:
a.必须要有字子父类继承关系或者接口实现关系
b.必须有方法的重写,多态玩的就是重写
 c.new对象:父类引用指向子类对象
    Fu fu = new Zi()
2、多态条件下成员的访问特点
2.1成员变量
	看等号左边是谁,先调用谁中的。
2.2成员方法
	看new的是谁,先调用谁的,子类没有,找父类。

3、多态弊端
	### 不能直接调用子类中特有的方法
5.多态中的转型
5.1向上转型
5.2向下转型(目的:调用子类中特有的方法)
	格式:子类类型 对象名1 = (子类类型)对象名
	
6.转型可能会出现的问题
1.如果等号左右两边类型不一致,就会出现类型转换异常(ClassCastException)
2.解决:
  转型的时候加个判断,先判断一下类型
3.关键字:
  instanceof -> 判断类型
4.使用:
  对象名 instanceof 类型 -> 判断的是关键字前面的对象是否符合关键字后面的类型,返回值是一个boolean
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值