抽象类与接口的三点区别
来源:互联网 发布:计算机数据库的应用 编辑:程序博客网 时间:2024/05/01 21:11
在使用上,一个不包含非抽象方法的抽象类与接口是类似的,不过请注意以下几点
1:一个类可以实现任意多个接口,但它最多只能继承一个抽象类
2:一个抽象类可以含有诺干个非抽象方法,它通常是模板方法模式的一个实例.而一个接口的所有方法都是抽象的,无论是否将它的方法显示地声明为抽象.
3:一个抽象类可以声明实例变量,其子类可以继承这些实例变量.而一个接口不能声明实例变量,不过接口可以声明static final修饰的域。
4:一个抽象类可以定义构造方法,而接口不能。
5:一个抽象类的可见性修饰符可以是public,protected,private,或者无修饰符(表示包内可见);而一个接口的可见性修饰符只能是public,或者无修饰符(表示包内可见)
6:一个抽象类的方法的可见性修饰符可以是protected,private,或者无修饰符(表示包内可见);
而一个接口的方法的可见性修饰符只能是public.
7:一个抽象类是从Object类派生而来的,它继承了Object类的clone()方法和equals()方法。
例:
package com.oozinoz.simulation;
import com.oozinoz.units.*;
interface RocketSim()
{
abstract Length appgee();
public Force thrust();
}
下面的表述正确的是?
A: RocketSim接口中的两个方法都是抽象方法,尽管只有apogee()方法显式地声明为抽象的
正确,接口的方法总是抽象的,无论是否显式地声明
B: RocketSim接口中的两个方法都是公共方法,尽管只有thrust()方法显式地声明为公共的
正确,接口的方法总是公共的,无论是否显式地声明。
C: 所有接口都是公共的,所以RocketSim也是公共的,尽管它没有显式地声明为公共的
错误,该接口的可见性受限于其所在的包,RocketSim接口没有显式地声明为public,因而它在包内可见,com.oozinoz.sim包之外的其他类是无法访问或实现该接口的。
D: 可以再创建一个接口,如RocketSimSolid接口,并扩张RocketSim接口。
正确,例如,List接口和Set接口都扩展了java.util包中的Collection接口。
E: 每个接口必须至少含有一个方法
错误,不含方法的接口被称作标记(market)接口
F:接口可以声明实例域,实现该接口的类,也必须声明该域。
错误,一个接口不能声明实例域,不过它可以通过声明static和final修饰的域来声明常量
G:虽然不能实例化一个接口,但接口定义可以声明构造器方法,要求实现该接口的类必须提供具有指定参数的构造器的方法。
错误,接口不可以定义构造方法
- 抽象类与接口的三点区别
- java中抽象类和接口的三点区别
- 接口与抽象类的几点区别
- 接口与抽象类的异同点
- 抽象类与接口的区别 - [ Java 接口 抽象类 ]
- 抽象类与接口类的区别
- 接口类与抽象类的区别
- 抽象类与接口“类”的区别
- 抽象类与接口的区别
- 转载:抽象类与接口的区别
- 抽象类与接口的区别(1)
- 抽象类与接口的区别
- 抽象类与接口的区别
- 转载:抽象类与接口的区别
- 抽象类与接口的区别 [转]
- 抽象类与接口的区别
- 抽象类与接口的区别
- 抽象类与接口的区别
- The method isEmpty() is undefined for the type String/String
- The Cg Tutorial 翻译
- ERP和MIS的区别是什么
- 浙商的二十二条军规
- 写些什么呢?最近心情很郁闷。
- 抽象类与接口的三点区别
- C# 中的委托和事件
- LED显示屏幕芯片控制器程序,有这方面的专家吗?
- fedora12 eclipse3.5 启动异常
- WebPageTest介绍
- jquery 实现两个select之间option的转移
- 使用 sp_executesql
- jquery 清空select
- Linux下websphere不能安装要关闭SeLinux