标签:
一、抽象类
1.抽象类不能被实例化,实例化要交给子类完成,它只需要一个子类就可以完成
2.抽象方法必须由子类来进行重写
3.如果一个类包含一个抽象方法,则该类必须定义成抽象类
4.抽象类中可以包含具体方法,也可以不包含
5.子类中的抽象方法不能与父类重名
6.abstract 不能与 final 同时修饰一个类
7.abstract 不能与 private、static、final 或者 native 并列修饰同一个方法
二、接口
接口是一种比抽象类更加抽象的“类”,接口本身并不是类。它不能直接 new ,如 new Runnable() ,只能 new 出它的实
现类。
Java是单继承的。一个类只能有一个父类,单可以实现多个接口。
注意点:
1.接口的所有方法自动的被声明为 public,并且只能声明为 public。
2.接口中的变量自动的声明为 public static final,可以直接通过类名直接访问。
3.接口中不能有实现的方法。
4.非抽象类实现接口必须实现接口所有的方法,抽象类可以不实现。
5.不能用 new 操作符修饰接口。可以声明一个变量,但变量必须指向一个实现了该接口的类的对象。可以用 instanceof
检测某个类是否实现了某个接口。例如:if( object instanceof Comparable ){ …… }
6.实现多个接口的时候要避免接口命名的重复。
三、抽象类与接口的区别
1.语法上
抽象类可以有自己任意范围的成员数据,可以拥有抽象或者非抽象方法。接口只能有自己 public static final修饰的成
员数据,只能有方法的声明。在某种程度上接口是抽象类的一种特殊化形式。
2.MORE
a.抽象的层次。抽象类是对类进行抽象(包括属性、行为),接口是对行为的抽象。
b.抽象类体现出的是一种继承的关系,本质上来说抽象类与其子类所描述的是同一概念,子类是对抽象类更加详细的描述。
而接口则没有这一要求,接口只是所有相同行为的抽象,体现的是行为的契约。
c.一般来说,抽象类是由子类泛化抽象出的,而接口则不是。
标签:
原文地址:http://www.cnblogs.com/zhangyn/p/5381848.html