Там, кажется, путанице в этом Q & А. Вопрос был о «абстрактный тип данных и интерфейс» и большинство ответов concetrating о «Абстрактные классы».
Термины «абстрактный тип данных» и абстрактный класс относятся к двум совершенно другим понятиям, хотя оба они используют слово «абстрактный». Абстрактный тип данных - это автономный, определяемый пользователем тип, который связывает данные с набором связанных операций. Он ведет себя так же, как делает встроенный тип. Однако он не наследуется от других классов и не служит основой для других производных классов. Если вы посмотрите об этом в wiki, вы увидите: «Абстрактный тип данных определяется как математическая модель объектов данных, составляющих тип данных, а также функции, которые работают с этими объектами. Стандартных соглашений для их определения нет Широкое разделение может быть проведено между «императивными» и «функциональными» стилями определения ». Например, в Java у нас есть интерфейс List. Он определяет структуру данных с набором методов для работы, но не предоставляет никакой реализации как таковой.
Напротив, абстрактный класс представляет собой нечто вроде абстрактного типа данных. Абстрактный класс - это класс, объявленный абстрактом - «он может включать или не включать абстрактные методы». Абстрактные классы не могут быть созданы, но они могут быть подклассами. Это не тип данных. Абстрактный класс - это просто скелетный интерфейс, который определяет набор сервисов, реализуемых подклассами. К сожалению, различие между двумя понятиями часто путают. Многие люди ошибочно используют термин абстрактный тип данных, когда они действительно ссылаются на абстрактный класс.
В моем Interfaces мнений являются способом в Java реализации «АТДА»
Вы можете прочитать о «Abstract Data Type» в Wiki. Кроме того, если вы хотите узнать больше об абстрактном типе данных в java, вы можете сослаться на эту ссылку, http://www.e-reading.ws/bookreader.php/138175/Abstract_Data_Types_in_Java.pdf, ее действительно хорошо.
Большинство из вас могут быть знакомы с абстрактными классами, Тем не менее вы можете прочитать об этом из http://docs.oracle.com/javase/tutorial/java/IandI/abstract.html
Чтобы добавить к этой путанице, Java 8 ввел то, что называется «Default Methods», с помощью которого мы могли бы дать реализации для методы в интерфейсе. Чтобы устранить эту путаницу, вы можете сослаться на этот вопрос с потоковым потоком Interface with default methods vs Abstract class in Java 8
возможно дубликат [Какая разница между интерфейсом и абстрактным классом?] (Http://stackoverflow.com/questions/1913098/what- is-the-difference-between-an-interface-and-abstract-class) –
, вы должны исследовать его, прежде чем задавать этот вопрос. Этот вопрос/ответ доступен на многих местах, тогда вы легко его найдете. –
Есть ли разница между абстрактным классом и абстрактными типами данных – user2454830