javaSE--进阶三(接口,多态)

接口

接口中的方法全都是抽象方法,用来指定一些规则,让子类去重写。接口的作用主要体现在一下两点

1.指定规则
2.利用这些规则给类做功能扩展

接口的定义和使用

接口使用interface关键字来定义,使用implements来实现。

//定义接口
public interface Inter{
    //接口中的抽象方法
    public abstract void method();
}
//实现接口
public class InterImpl implements Inter{
    //复写抽象方法
    public void method(){
        System.out.println("复写实现类方法");
    }
}

接口的成员特点

1.接口中的成员变量,默认被 public static final 修饰
2.接口中的方法,默认被 public abstract 修饰
3.接口中不能写构造方法

JDK7以后对接口做了一些更新
	JDK7: 接口中的方法全都是抽象方法,子类必须重写
	
	JDK8: 允许在接口中写默认方法(被 public default 修饰的方法),可选重写
		  如果多个接口中有相同的默认方法,子类必须重写
	
		  允许在接口中写静态方法(被 public static 修饰),使用接口名调
	
	JDK9: 允许在接口中写私有方法 (被 private 修饰),只能在本接口中使用

类与接口的关系

1.类与类的关系:只能单继承
2.类与接口的关系:多实现关系
3.接口与接口关系:多继承关系

多态

同一个对象可以用多种数据类型(父类、接口)进行接收。

多态的前提
	1.要有继承、实现的关系
	2.要有方法重写
	3.父类/接口接收子类对象
		Animal a=new Dog(); //Animal是Dog的父类		
		Usb  u=new Mouse(); //Usb是Mouse的接口

多态的成员访问特点

1.成员变量的访问特点
	编译看左边(父类),运行也看左边(父类)
    大白话:父类有就用父类的,父类没有就报错了
    
2.成员本方法的访问特点
	编译看左边(父类),运行也看右边(子类)
    大白话:子类复写父类方法,就执行子类的方法。

多态的好处和弊端

1.好处:提高了代码的扩展性
	把方法的参数写成父类、接口,调用方法时可以传递任意的子类对象。

2.弊端:不能调用子类特有的方法

多态的转型

1.向上转型
	Animal a=new Dog(); //多态的写法,就是向上转型

2.向下转型
	//判断变量a具体是什么类型
	if(a instanceof Dog){
        Dog dog=(Dog)a;
        dog.swimming();
    }
  
注意:多态的转型并不是随意的,它是一个还原的动作。原本是什么类型,才能转换为什么类型。

3.多态转型可能会遇到的问题
	ClassCastException:  多态的转型出现的问题,类型转换错了
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值