zoukankan      html  css  js  c++  java
  • 虚函数 纯虚函数 抽象方法 接口

    虚函数

    虚函数其实是C++中的讲法,就是说将一个函数实现声明为虚函数,这样就为子类提供了一个默认的实现,子类可以选择进行重新实现,或者不进行实现。这样对应到java里,其实就是java里的普通函数。虚函数是可以由子类进行无限覆盖的函数,另外自己也可以进行实现,而java的普通成员函数就可以做到,C++的普通函数就不行,否则就报重复定义error了,必须得加上virsual关键字声明。

    纯虚函数

    也是C++的讲法,与虚函数的区别就是声明的地方不能有实现,完全交给子类,相当于定义保留了一个接口。
    C++中纯虚函数形式为:virtual void print() = 0;
    对应到java中,就是抽象方法的概念,也就是abstract声明的函数。
    JAVA中抽象方法定义形式:abstract void print();

    抽象类

    C++与JAVA中都有这个概念,在C++中,只要一个类中包含了一个纯虚函数,那么这个类就是一个抽象类;而在JAVA中,如果一个类中包含有一个抽象方法,由于JAVA有规定,这种情况下,这个类必须要用abstract来修饰,也就是一个抽象类了。
    C++与JAVA中的抽象类有个共同点,就是抽象类不能直接拿来实例化,因为其中有抽象的函数,只能通过实现了这些函数的子类实例化。

    接口

    C++中没有独立的接口的概念,其实就是成员函数全部为纯虚函数的类,子类必须对他们进行全部实现。
    JAVA中有独立的接口概念,就是interface修饰的类,跟C++中的纯虚基类换汤不换药,代码看起来样式不一样而已,另外,java中的接口在声明的时候必须都定义为public的。

     

  • 相关阅读:
    个人作业——顶会热词进程1.3
    个人作业——顶会热词进程1.2
    每周总结(5.9)
    个人作业2——顶会热词进程1.1
    团队项目冲刺第10天
    CodeForces-1178F1 Short Colorful Strip 区间DP
    LOJ-2362 蚯蚓 队列优化
    Educational Codeforces Round 107 (Rated for Div. 2) G.Chips on a Board 倍增优化DP
    LOJ-2123 最短不公共子串 后缀自动机,子序列自动机
    LGR-084 C Reboot from Blue 贪心 DAG上DP最短路
  • 原文地址:https://www.cnblogs.com/flyme/p/4565916.html
Copyright © 2011-2022 走看看