一、abstract抽象类
抽象是什么?顾名思义,抽象就是很抽象…(废话
抽象类是一种思想 反映了很多类共有的一些特征
抽象方法在定义方法时不写方法体 不包含方法体
必须用abstract关键字来修饰
例:
abstract void shout();
1、抽象方法没有方法体 不能被调用
2、包含抽象方法的类必须声明为抽象类 但抽象类可以不包含任何抽象方法
3、抽象类不能被实例化
4、抽象类的子类只有覆盖了抽象类的所有方法 子类才能实例化 否则 仍然是一个抽象类
抽象就是相当于提炼出一些功能
二、interface接口
接口:扩展功能
接口是一种完全抽象类★
接口是一种抽象的思想 主要反映了被实现的类的一些共性
1、接口中的方法都是抽象的 不能实例化对象
2、当一个类实现接口时 如果这个类是抽象类 则实现接口中的部分方法即可 否则需要实现接口中的所有方法
3、一个类通过implements关键字实现接口时 可以实现多个接口 被实现的多个接口之间要用逗号隔开 这解决了多继承只能继承一个的弊端 被称为多实现
接口继承接口 即可实现多继承
例:
interface People
{
void work();
void run();
}
class Student implements People
{
public void work()
{
System.out.println("work:学生去上课");
}
public void run()
{
System.out.println("run:学生跑步。速度:快");
}
}
class Teacher implements People
{
public void work()
{
System.out.println("work:教师去上课");
}
public void run()
{
System.out.println("run:教师跑步。速度:慢");
}
}
class Runner implements People
{
public void work()
{
System.out.println("work:运动员去训练");
}
public void run()
{
System.out.println("run:运动员跑步。速度:极快");
}
}
三、implements 实现
在接口里完成上级的方法 这不叫继承 叫实现
实在无法理解的话 可以理解为仅仅是术语改变了一下
例:
A extend B 这是A继承B
A implement B 这是A实现B
来源:CSDN
作者:forgiveyourself
链接:https://blog.csdn.net/Piconjo/article/details/104575996