java 抽象类和方法 接口 笔记

一、抽象类和方法

1、抽象方法必须使用abstract修饰,不能带花括号。

2、带有抽象方法的类称为抽象类,必须用abstract修饰,反过来抽象类中可以没有抽象方法。抽象类中含无具体实现的方法,所以不能用抽象类创建对象。抽象类只能被继承。

3、抽象方法默认为public,必须为public或protected(如果为private,就无法被子类继承,毫无意义)。

4、如果一个类继承了一个抽象类,则子类必须实现父类的抽象方法,如果没有实现抽象方法,则子类也要定义为abstract类。

二、接口

1、接口中可以添加使用default关键字修饰的非抽象方法(此方法可以重载object中的方法,但不能重写),接口里可以声明静态方法并可以使用 (接口名。静态方法名)  来调用(以上是java 8 新特性)

三、两者的同异

相同点:

1、都是抽象类型

2、都可以有实现方法(以前接口不行)

3、都可以不需要实现类或者继承者去实现所有方法。

不同点:

1、抽象类不可以多重继承,接口可以

2、抽象类和接口反映出的设计理念不同,抽象类表示的是“is a”关系,而接口表示的是“like a” 关系

3、接口中的变量必须是public static final ,必须给定初值,在实现类中不能重新定义,抽象类中可以在子类中重新定义和赋值。

4、(重要)在接口中,方法默认就是public abstract的,可以不用在方法前声明abstract,但是在抽象类中,需要我们手动为抽象方法声明是abstract,不然会报错。

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值