码迷,mamicode.com
首页 > 编程语言 > 详细

重学Java(3):抽象类与接口

时间:2016-04-12 12:31:17      阅读:155      评论:0      收藏:0      [点我收藏+]

标签:

一、抽象类

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.一般来说,抽象类是由子类泛化抽象出的,而接口则不是。

重学Java(3):抽象类与接口

标签:

原文地址:http://www.cnblogs.com/zhangyn/p/5381848.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!