摘自:SCJP Guide和sun doc
网址:http://www.witscale.com/ebook/Browsable/ebook078.htm
网址:http://java.sun.com/docs/books/jls/second_edition/html/interfaces.doc.html
To summarize the modifiers in relation with interfaces, note
that
Interface can be declared with either public or default access
.
It is implicitly
abstract.
Interface methods are by default public and abstract.
Interface variables are by default public, static and final.
1.接口可以声明为public(公共)或默认的访问权限。接口隐含表明是抽象的(abstract)的。
2.接口的方法默认即为public(公共)且是abstract(抽象)的.
3.接口中的变量默认即为public(公共), static(静态) and final(最终的)。
Table 3.3 shows the various combinations for the interface
methods and constant declarations and how the compiler sees them.
Table 3.3 Valid declarations of interface methods and
constants
Interface declarations
|
How the compiler interprets
them
|
public interface Searchable {}
|
public abstract interface Searchable {}
|
abstract interface Searchable {}
|
abstract interface Searchable {}
|
interface Searchable {}
|
abstract interface Searchable {}
|
void search(String searchString);
|
public abstract void search(String searchString);
|
abstract void search(String searchString);
|
public abstract void search(String searchString);
|
public void search(String searchString);
|
public abstract void search(String searchString);
|
char MATCH_ONLY_ONE = ‘?’;
|
public static final char MATCH_ONLY_ONE = ‘?’;
|
public char MATCH_ONLY_ONE = ‘?’;
|
public static final char MATCH_ONLY_ONE = ‘?’;
|
static MATCH_ONLY_ONE = ‘?’;
|
public static final char MATCH_ONLY_ONE = ‘?’;
|
final char MATCH_ONLY_ONE = ‘?’;
|
public static final char MATCH_ONLY_ONE = ‘?’;
|
final public char MATCH_ONLY_ONE = ‘?’;
|
public static final char MATCH_ONLY_ONE = ‘?’;
|
|
|
|
The order of modifiers does not matter in any
variable or method declaration. For instance, the declaration public
abstract static method();
is same as the abstract public static method();
.
It is also the same as abstract static public method();
. By
convention, however, the access modifier (if any) is written before the other
modifiers.
|
Interfaces specify the set of methods that have to be implemented ultimately by a concrete (non-abstract class).
Abstract will specify a method which is not implemented in an abstract base class, and that must
be implemented in a concrete subclass.
A side note; Values defined in an interface are public static final
my default so
int VALUE = 5;
is the same as
public static final int VALUE = 5;
in an interface.
abstract
Interfaces
Every interface is implicitly abstract
. This modifier is obsolete and should not be used in new programs.
分享到:
相关推荐
abstract class和interface是Java语言中对于抽象类定义进行支持的两种机制,正是由于这两种机制的存在,才赋予了Java强大的面向对象能力。abstract class和interface之间在对于抽象类定义的支持方面具有很大的相似性...
### abstract class和interface有什么区别? 在面向对象编程中,`abstract class` 和 `interface` 都是用来实现抽象化的工具,但它们之间存在着重要的差异。理解这些差异有助于开发者更有效地设计和实现软件系统。 ...
Override 关键字用于重写父类中的虚拟方法,Abstract 关键字用于声明抽象类和抽象方法,Virtual 关键字用于声明虚拟方法,而 Interface 关键字用于声明接口。只有正确地使用这些关键字,才能编写出高质量的 C# 程序...
- 结合`abstract class`和`interface`的优点,可以通过定义一个`interface`并在其下方定义一个实现该接口的`abstract class`来达到最佳效果。 - 这样既确保了接口的灵活性,又提供了抽象类的部分实现,方便后续的...
在Java编程语言中,抽象类(abstract class)和接口(interface)都是用于实现抽象化的重要工具,它们可以帮助程序员更好地组织代码,提高代码的可复用性和扩展性。尽管二者在功能上有一些相似之处,但在实际使用中...
在编程领域,`abstract class`(抽象类)和`interface`是两种重要的设计模式,它们在构建可扩展和模块化的软件系统中起着至关重要的作用。这篇文章将深入探讨这两个概念,以及它们在实际开发中的应用。 首先,让...
在Java编程语言中,`static`、`final`、`abstract`和`interface`是四个非常重要的关键字,它们分别代表不同的特性,用于定义类、变量和方法的行为。下面是对这些关键字的详细解释: 1. **static(静态)** - **...
在面向对象编程语言中,如Java,接口(Interface)和抽象类(Abstract Class)是两种非常重要的概念,它们都被用来实现代码的复用性和扩展性。但它们之间存在一些根本性的区别,这些差异对于正确地设计类结构至关...
在PHP编程语言中,`abstract`关键字和`interface`接口都是用于实现多态性和代码规范化的工具,但它们之间存在着显著的区别。这篇文章将深入探讨这两种概念,并解释它们各自的作用。 首先,我们来看`interface`接口...
在Java编程语言中,`abstract class`(抽象类)和`interface`是两种重要的机制,它们用于实现多态性和抽象性。虽然它们都可以用来定义抽象方法,但它们之间存在显著的差异,这些差异影响了开发者在设计软件时的选择...
在Java编程语言中,`abstract class`(抽象类)和`interface`都是用来定义抽象类的概念,它们在面向对象设计中扮演着重要的角色。抽象类主要用于表示一系列具有共同特征但又各自具有独特行为的具体类的抽象,而接口...
C#中的`interface`、`abstract`和`virtual`是面向对象编程中的关键概念,它们在定义类的行为和结构方面起着重要作用。 首先,`interface`是C#中的一种规范,它定义了一组方法签名,但不提供具体实现。这意味着任何...
Struct 、Class、Interface、Abstract各个的特性、应用场景等对比
在Java编程语言中,接口(Interface)是一种定义行为规范的关键元素,它允许我们实现多继承。接口是完全抽象的,不包含任何方法的实现,只有方法的声明、常量定义以及默认方法。Java中的接口提供了以下核心知识点: ...
在Java编程语言中,`interface`接口和`abstract class`抽象类是两种重要的面向对象设计概念,它们都用于实现多态性,但有着显著的区别。理解这些差异对于编写可扩展和可维护的代码至关重要。 首先,接口是完全抽象...
在Python3中,我们可以使用`abstractmethod`装饰器和`ABCMeta`元类来创建接口类。 一、接口类的定义与作用 接口类的作用在于规定子类必须实现哪些方法,以满足特定的协议或标准。它自身不包含任何实现,只定义了...
Java抽象类和借口的区别 Java抽象类和借口是Java语言中两种支持抽象类定义的机制,它们在...选择合适的机制需要根据问题领域的特点和设计理念,正确地理解和使用abstract class和interface是软件设计和开发的关键。