继承,多态,抽象类,接口

继承

  1. Override和Overload不同的是,如果方法签名如果不同,就是Overload,Overload方法是一个新方法;如果方法签名相同,并且返回值也相同,就是Override。
  2. 加上@Override可以让编译器帮助检查是否进行了正确的覆写。希望进行覆写,但是不小心写错了方法签名,编译器会报错。

多态

  1. 像上转型后,不能再使用子类的方法。类型即为子类又为父类(可强制转型为子类)。
    例子
		//Object<-Student<-PrimaryStudent
        System.out.println(yuanhuan instanceof Object);//true
        System.out.println(yuanhuan instanceof Student);//true
        System.out.println(yuanhuan instanceof PrimaryStudent);//true

抽象类

  1. 如果父类的方法本身不需要实现任何功能,仅仅是为了定义方法签名,目的是让子类去覆写它,那么,可以把父类的方法声明为抽象方法.(常规类的方法必须实现,无法满足这个功能,所以产生抽象类)
  2. 抽象类相比普通类,多了可以定义抽象方法。

接口

  1. 所谓interface,就是比抽象类还要抽象的纯抽象接口,三个关键词public static final 。可以定义常量字段,不能定义实例字段。因为接口定义的所有方法默认都是public abstract的,所以这两个修饰符不需要写出来(写不写效果都一样)。

  2. 接口可继承接口,不能继承类。

  3. 接口和抽象类对比:(实例字段是指需要实例化后才能用的字段)
    接口定义变量都是final static ,抽象类不是。
    接口定义的方法都是public abstract. 抽象类定义方法跟普通类相同,多了可定义抽象方法的功能。
    在这里插入图片描述

  4. 实现类可以不必覆写default方法。default方法的目的是,当我们需要给接口新增一个方法时,会涉及到修改全部子类。如果新增的是default方法,那么子类就不必全部修改,只需要在需要覆写的地方去覆写新增方法。

  5. default方法和抽象类的普通方法是有所不同的。因为interface没有字段,default方法无法访问字段,而抽象类的普通方法可以访问实例字段。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值