抽象

作者: weiliping | 来源:发表于2018-08-12 20:45 被阅读0次

抽象是隐藏实现细节并仅向用户显示功能的过程。
Java中有2种方式可实现抽象:

  • 抽象类(0到100%的抽象)
  • 接口(100%的抽象)

抽象类

抽象类是被声明为abstract的,且可以有抽象的或非抽象方法的类。抽象类应该由它的子类来扩展并且实现它的抽象方法。

抽象方法

抽象方法是没有实现的方法,即它没有任何方法主体。

abstract class Shape {
    public abstract double calculateArea(); // 没有任何方法主体
}

接口

接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)

接口示例

package org.oriented.sample;

interface Paintable {
    void paint();
}

public class Room implements Paintable {
    @Override
    public void paint() {
        System.out.println("Painting the room");
    }
}

以下是真实生活中的抽象示例:

我们创建一个接口并命名为Sport,然后创建2个该接口的实现类;分别为Cricket和Football。在实际场景中,可以通过工厂方法提供实现类的对象,这样的话,最终用户看不到具体的实现类。工厂方法可用于根据某些创建条件来创建实现类的对象。

示例

package org.oriented.sample;

public interface Sport {
    void play();
}

Cricket类

package org.oriented.sample;

public class Cricket implements Sport {
    
    @Override
    public void play() {
        System.out.println("Playing cricket");
    }

}

Football类

package org.oriented.sample;

public class Football implements Sport {

    @Override
    public void play() {
        System.out.println("Playing football");
    }

}

SportInterfaceMain类

package org.oriented.sample;

public class SportInterfaceMain {
    public static void main(String[] args) {

        // factory method
        Sport sport = new Cricket();
        sport.play();

        System.out.println("=================");

        // You can easily change implementation
        sport = new Football();
        sport.play();
    }
}

运行以上程序后,结果显示如下:

Playing cricket
=================
Playing football

相关文章

  • 抽象抽象再抽象

    抽象 继承 单一原则 面向扩展开放,面向修改关闭 控制反转,依赖注入 里氏替换原则 单一职责原则开放封闭原则里氏替...

  • 抽象类、抽象字段、抽象方法

    结果:Teaching!!!teacher.id:80085693Spark:29

  • 抽象类与接口

    抽象方法和抽象类特点 抽象方法和抽象类必须使用abstract修饰符来定义,有抽象方法的类只能被定义为抽象类,抽象...

  • 抽象类、接口、内部类总结

    抽象方法与抽象类 抽象方法与抽象类必须使用abstract修饰,有抽象方法的类只能被定义为抽象类,抽象类里可以没有...

  • 25.面向对象(抽象类. 多态)

    面向对象(抽象类. 多态) 一. 抽象类 抽象类不能实例化 继承抽象类的子类必须将抽象类中所有的抽象方法重写 抽象...

  • 抽象

    说实话,来北京后对挺多东西都有了新认识,比如‘抽象’这个词。 以前对‘抽象’没什么概念,甚至觉得它像个贬义...

  • 抽象

  • 抽象

    今天玩一下抽象

  • 抽象

    抽象是隐藏实现细节并仅向用户显示功能的过程。Java中有2种方式可实现抽象: 抽象类(0到100%的抽象) 接口(...

  • 抽象

    你不知道太阳会不会没有阴暗 它把阴霾用黑夜隐藏; 你不知道月亮会不会停止发光 它将缝隙用丝缕透射; 你不知道, 就...

网友评论

      本文标题:抽象

      本文链接:https://www.haomeiwen.com/subject/bpudyftx.html