关于什么时候用抽象类,什么时候用接口,我在这里做一下总结。
首先看下面的例子:
abstract class AbstractStudent{
abstract void study();
void sleep(){
System.out.println("sleep");
}
void smoke(){
System.out.println("抽烟");
}
}
//所有的Student被创建都会抽烟,是不是很搞笑?
class Student extends AbstractStudent{
Student Demo stu = new Student();
...
}
上面这个学生抽象类中有三个方法,学习,睡觉,抽烟。我们知道任何一个学生都要学习,都要睡觉,但是不是
每个学生都要抽烟呢?这显然是不合理的。难道说创建一个学生对象,就一定要强加给他抽烟的方法?就像一个
学生来了,就一定要他会抽烟?女生也不放过?哈哈!这显然是很荒唐的事情。
于是我们做如下调整:
abstract class AbstractStudent{
abstract void study();
void sleep(){
System.out.println("sleep");
}
}
interface Smoking{
void smoke();
}
//普通的学生,继承AbstractStudent,有学习、睡觉的方法,不抽烟
class Student extends AbstractStudent{
}
//抽烟的学生,除了继承AbstractStudent中的方法,还会抽烟
class SmokeStudent extends AbstractStudent implements Smoking{
}
这样,就把抽烟的同学和不抽烟的同学分离开了。 现在你感觉到了抽象类与接口的不同点了吗?
总结:抽象类中通常放的是类种事物(对象)共有的属性和方法,于是它的子类继承它的时候
就自然有了其所有属性和方法,当有些方法是某种子类特有的时,就应该将这个方法分离出来,
以附加的形式(implements)添加进去。
分享到:
相关推荐
java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例java抽象类与接口实例...
Java抽象类与接口实验报告
Java源代码:抽象类和接口 Java源代码:抽象类和接口
在Java语言中,abstract class和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性,...
Java 接口和抽象类
11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别.zip11.java接口和抽象类的区别....
抽象类和接口的区别 在Java语言中, abstract class 和interface 是支持抽象类定义的两种机制。正是由于这两种机制的存在,才赋予了Java强大的 面向对象能力。abstract class和interface之间在对于抽象类定义的支持...
10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和抽象类的相似性.zip10.java接口和...
Java中的类、抽象类和接口的区别和联系
此书对于你学习Java抽象类和接口有非常大的帮助
java利用接口和抽象类改写求圆的面积和梯形的面积.docx
java 抽象类与接口的练习,包括代码及注释,个人笔记
1.继承及继承实例 2.方法重写(Overwrite) 3.super关键字 4.方法重载(Overload) 5.final修饰符 6.abstract修饰符 7.抽象类 8.接口 9.接口和抽象类对比 10.接口和抽象类使用场合实例 11.总结
学生通过对该项目整体框架的搭建和对动物城信息管理等模块的设计与功能实现,训练了学生对项目框架的搭建、类的封装、抽象类定义与继承、接口的定义与接口的实现等Java OOP面向对象知识点的掌握。 本项目主要包括...
深入浅出的说明java抽象类与接口区别,让初学者更好的理解java抽象类与接口的概念
该资源对接口与抽象类作了详细分析与比较,相信你看了之后,会彻底的明白了,java学习更上一层楼
java 抽象类与接口的区别
Java抽象类和抽象方法
Java实验7抽象类和接口.pdf
本文件归纳了Java语言的接口类与抽象类的各自要点与同异对比。