既然有隐式抽象,那也有显示抽象吗,显示抽象指的时把abstract抽象关键字表示出来吗?
在编程语言中,特别是像Java这样的面向对象编程语言里,“抽象”通常指的是通过abstract
关键字明确表示的类或方法。这类抽象被称为显式抽象,因为它是直接且明显地标记出来的。
显式抽象
显式抽象是指使用abstract
关键字来明确声明一个类或方法是抽象的。例如,在Java中:
-
抽象方法:没有具体实现的方法,并且必须包含在抽象类中。它们使用
abstract
关键字来定义,后面跟着分号而不是方法体。abstract void myMethod(); // 抽象方法
-
抽象类:可以包含抽象方法和普通方法(有具体实现的方法),并且不能被实例化。抽象类同样需要使用
abstract
关键字来声明。abstract class MyAbstractClass { abstract void myMethod(); // 抽象方法 void anotherMethod() { /* 方法体 */ } // 普通方法 }
在上述例子中,myMethod
是一个显式抽象方法,因为它使用了abstract
关键字来标记它是一个没有实现的方法。而 MyAbstractClass
则是一个显式抽象类,因为它也使用了abstract
关键字 。
隐式抽象
与显式抽象相对的是隐式抽象,这个概念主要出现在某些特定的语言特性或设计模式中。比如在TypeScript中,接口中的所有成员都是隐式抽象的,也就是说,接口自动假设所有的属性和方法都没有实现,不需要用abstract
关键字来标识 。这与Java不同,在Java中,即使是接口中的方法也需要显式地使用public abstract
(尽管通常省略public abstract
关键字,因为这是接口方法的默认行为)。
总结来说,当你提到“显示抽象”,你是在指那些明确地使用了abstract
关键字来声明为抽象的类或方法。而在某些情况下,如TypeScript的接口,虽然没有显式的abstract
关键字,但仍然具有抽象的性质,这可以被视为一种隐式抽象的形式。因此,是否使用“显示抽象”这一术语取决于具体的编程语言及其语法特性。在Java等语言中,抽象性通常是通过显式的abstract
关键字来表达的。