JavaSE-抽象类和接口

抽象方法

  • 抽象方法是一种特殊的方法,只有声明没有方法体
  • 声明的格式为:
abstract 返回值类型 func(参数列表)  --抽象方法
  • 抽象方法存在的意义在于父类不想或者无法提供方法的方法体(具体实现),只知道有这个方法。(针对不同的类,实现方法不一样)
  • 抽象类

    • 如果一个类中含有抽象方法,则该类必须被定义为抽象类,但抽象类中不一定含有抽象方法
    • 声明的格式为:
    abstract class 类名{} --抽象类
    
  • 抽象类特点:
    • 抽象方法与抽象类均不可以被final修饰
    • 如果一个类继承抽象类,则必须完全实现其抽象方法,否则声明为抽象类
    • 抽象方法必须为publicprotected,不能够用privatestatic修饰
  • 接口

    • 抽象类的延伸——在一个类中如果所有的方法是抽象的,则可定义成接口
    • 接口比抽象类更加纯粹全抽象的
    • 接口实现implements——对比继承extends
    • java中子类只能够有一个直接父类,要多继承,必须使用接口,接口可以实现多次
    • 接口的声明:
    interface 接口名{}
    
  • 接口不可以实例化,只能用于实现
  • 接口当中可以含有成员变量方法,方法都是抽象的,变量都是public static final修饰的
  • 一般情况下不要在接口中定义变量
  • 接口与抽象类的区别

    1. 抽象类可以实现接口,接口可以继承接口
    2. 接口中定义的方法都是抽象的,而抽象类中可以含有普通方法
    3. 接口中的成员变量都是public static final的,而抽象类中可以有普通变量
    4. 接口中一定不含有构造方法,但抽象类中可以有构造方法
    5. 接口不可以实例化,抽象类可以在子类创建对象的时候自动创建抽象类的对象
    6. 接口可以实现多次,但是抽象类只能够单继承
    7. 抽象类主要是针对公共的属性进行抽象,对于延伸的附加行为定义为接口
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值