抽象类和接口

参考
什么是抽象类
Java 抽象类、普通类、接口的区别

抽象类

概述

抽象类 和具体类是相对的概念。“抽象”是一种存在思想逻辑中的概念,而“具体”是一种可见可触摸的现实对象。如:动物比猫咪更抽象一点,而生物比动物更抽象。

在Java中一个没有方法体的方法应该定义为抽象方法,

public abstract class Animal{
		public abstract void eat();
}

而类中如果有抽象方法,则必须定义为抽象类

抽象类的特点

  1. 抽象类和抽象方法 必须用 关键词abstract修饰
  1. 抽象类中 不一定 有抽象方法,但是有抽象方法的类 一定 是抽象类。
  1. 抽象类 不能进行实例化
  1. 普通类和抽象类都可以被继承,但是抽象类被继承后子类必须重写继承的方法,除非自类也是抽象类。

Q:为什么要重写抽象类中的所有抽象方法?
A:猫咪和兔子都是动物类的一个子类,是他的一个具体类。
比如动物都有eat()这个方法。但是猫吃鱼,兔子吃草。所以每个动物关于具体吃的方式是需要在子类中重写的,不然的话,猫和兔子不就一样了吗

在这里插入图片描述
多态 抽象类 接口

接口

概念

接口是对动作的抽象,抽象类是对 本质 的抽象。

抽象类表示的是,这个对象是什么。接口表示的是,这个对象能做什么。比如,男人和女人,他们的抽象类是人类,而猫和狗的抽象类是宠物类。人类可以吃东西,宠物类也可以吃东西,但是两者不能混为一谈,因为有本质的区别。这个“吃东西”是一个动作,你可以把“吃东西”定义成一个接口,然后让两个类去实现它的方法。
所以,在高级语言上,一个类只能继承一个类或抽象类,正如人不可能同时是动物类又是植物类,但是可以实现多个接口,例如,吃饭接口、呼吸接口等

再续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值