隐式抽象和显示抽象的区别

既然有隐式抽象,那也有显示抽象吗,显示抽象指的时把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关键字来表达的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值