java什么时候用抽象类,什么时候用接口
2012-08-03 00:04
225 查看
关于什么时候用抽象类,什么时候用接口,我在这里做一下总结。
首先看下面的例子:
上面这个学生抽象类中有三个方法,学习,睡觉,抽烟。我们知道任何一个学生都要学习,都要睡觉,但是不是
每个学生都要抽烟呢?这显然是不合理的。难道说创建一个学生对象,就一定要强加给他抽烟的方法?就像一个
学生来了,就一定要他会抽烟?女生也不放过?哈哈!这显然是很荒唐的事情。
于是我们做如下调整:
这样,就把抽烟的同学和不抽烟的同学分离开了。 现在你感觉到了抽象类与接口的不同点了吗?
总结:抽象类中通常放的是类种事物(对象)共有的属性和方法,于是它的子类继承它的时候
就自然有了其所有属性和方法,当有些方法是某种子类特有的时,就应该将这个方法分离出来,
以附加的形式(implements)添加进去。
首先看下面的例子:
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 接口大全、面向接口编程、什么时候使用接口。选择Java接口还是抽象类
- Java 接口大全、面向接口编程、什么时候使用接口。选择Java接口还是抽象类
- Java 接口大全、面向接口编程、什么时候使用接口。选择Java接口还是抽象类
- Java第4次实验提纲(面向对象2-继承、多态、抽象类与接口与Swing)
- java 抽象类与接口的区别
- 详细解析Java中抽象类和接口的区别
- Java面向对象学习笔记 -- 5(抽象类、接口)
- Java:抽象类和接口
- 解析Java中抽象类和接口的区别
- 深入理解Java的接口和抽象类-转载于海子额
- JAVA学习总结之抽象类和接口
- JAVA 抽象类、值交换、接口、多态
- JAVA基础必备(九)——继承,封装,多态,抽象类,接口