抽象类 抽象方法 接口

抽象类 抽象方法

使用abstract修饰的类和方法。就是抽象类和方法

两者的关系

抽象类中可以没有抽象方法,但是抽象方法一定在抽象类中

抽象类

抽象类的作用

  • 作为抽象方法的载体
    里面放一些抽象方法
  • 限制对类的实例化
    如有一个 Pet类 Dog类 Cat类 Dog和Cat都继承自Dog 程序所有的操作都是对子类进行的。Pet类只是提供了子类必须要实现的函数(也可以认为是只要是继承了这个类就必须要遵循的标准)那么这个父类将没有实例化的意义。

抽象方法

  • 抽象方法只有方法申明没有函数的具体实现
    public abstract void eat();
  • 抽象方法必须在抽象类中;
  • 抽象的方法子类必须实现;(如果子类也是抽象的就不用实现)

极端情况

  • 抽象类里面没有抽象方法 这个抽象类就是普通类
  • 抽象类里面全都是抽象方法 这个抽象类就是借口

接口

刚刚也说到抽象类全是抽象方法 这个类就相当于接口 所以 接口就是最彻底的抽象

  • 接口中只有方法申明 ,没有方法体
  • 接口中可以可以静态方法
    static void eat(){ }
  • 接口所有的变量都是直接赋初值 且 实现接口的类不可改

接口的定义

public interface MyInterface
		public void fool();		
}

接口的使用规则:

  • 接口不可以被实例化
  • 实现类必须实现接口的所有方法
  • 实现类可以实现多个接口
  • 接口中还可以定义常量,且是static、public
  • 可以有静态方法 可以定义变量但必须定义直接赋初值

抽象类与接口的区别

 接口中不能有具体实现,即方法实现或变量声明,抽象类 中可以有具体实现。
 接口中的方法缺省方法的属性public abstract,而抽象 类不能省略。
 一个类只能继承自一个抽象类,但可实现多个接口。即接 口支持多重继承,抽象类只支持单一继承。
 抽象类表达的是继承概念,即子类继承自某抽象类。接口 表达的是标准、规则概念,即子类实现了某接口。
 故继承抽象类使用extends关键字,实现接口使用 implements关键字。
 抽象类利于代码复用,接口利于代码维护

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值