Whats the difference between AppiumDriver vs RemoteWebdriver vs iOSdriver

Hi I am able to run tests on iOS with below driver initiation. Whats the difference between these drivers?

driver = new AppiumDriver(new URL(“http://localhost:4788/wd/hub”), cap);

driver = new RemoteWebDriver(new URL(“http://localhost:4788/wd/hub”), cap);

driver = new IOSDriver(sauceUrl, desiredCapabilities);

AppiumDriver extends from Selenium WebDriver which includes RemoveWebDriver and IOSDriver. AppiumDriver has more functionality.