بازگشت   پی سی سیتی > کامپیوتر اینترنت و شبکه Computer internet > سیستم عامل > ویندوز windows > مقالات آموزش ترفندها... Traning > مقایسه ها > مبانی نرم افزار

پاسخ
 
ابزارهای موضوع نحوه نمایش
  #1  
قدیمی 05-09-2013
DifferenceBetween آواتار ها
DifferenceBetween DifferenceBetween آنلاین نیست.
ربات اتوماتیک
 
تاریخ عضویت: May 2013
نوشته ها: 108
سپاسها: : 0

0 سپاس در 0 نوشته ایشان در یکماه اخیر
Post مقایسه تفاوت های Differences Between Abstract Class and Interface in Java

مقایسه تفاوت های Differences Between Abstract Class and Interface in Java



Abstract Class vs Interface in Java

To understand the differences between the abstract class and the interface in Java, it is important to, first of all, understand each of these independently. The abstract class in Java is used in declaration of subclasses with a set of common characteristics. The common use of the abstract class is a super class of other classes which, in effect, allows it to extend the abstract class. An abstract keyword is used in the declaration of an abstract class. Just as any other class would have, the abstract class has fields that describe methods and characteristics that the class can perform. By the mere declaration of an abstract class, the class cannot be initiated

A Java interface can be equated to a protocol. It represents a preset and agreed-upon behavior that allows for facilitation of the interaction of unrelated objects. Depending on the user, the interface holds the key to different actions being implemented. The interface, therefore, serves as a link between the producer and the consumer. Interfaces in Java are, thus, a group of methods containing empty bodies which may have constant declarations. In exposing a class to the Java interface, it means that the behavior expected of the class is the implementation of all methods of the interface.


Differences

First off, an abstract class allows for fields that are not static or final as opposed to the static and final fields used in interfaces. Interfaces cannot have any implementation code used in them, and there may be implementation code used in abstract class. The Implementation codes rolled out in the abstract class can have a few or all of the implemented methods. By default, all methods of the interface are “abstract.”



Visibility is also possible for methods or members of an abstract class which can vary such as public, protected, private, or none. The visibility of the interface, on the other hand, can only be preset to one mode of visibility which is  “public.’”



An abstract class will automatically inherit the object class. This, in effect, means that methods such as clone () and equals () are included. In an interface, no inheritance of the object class is possible. Following this, the abstract class has the capability of having a constructor, but an interface cannot have one.



The interface in Java also has a very important function with the implementation of multiple inheritances since a class can only have one super class. Although only one super class can be present, it can be implemented in whatever number of interfaces. It is not possible to have multiple inheritances in an abstract class.



In performance, interfaces tend to be slower in implementation as opposed to abstract class mainly due to the extra direction of finding the corresponding method in a class. The difference, however, has become slower due to modern Java virtual machines that are continually being upgraded.



Adding a method in an interface requires you to track down all the implementing classes which implement the specific interface. Alternatively, you can extend the interface so as to allow it to have extra methods. If you happen to be dealing with an abstract class, all that is required is to add the default implementation of the method and the code continues functioning. Inasmuch as differences exist between abstract classes and interfaces, it is important to note that they are not rivals, but the differences mentioned herein serve to complement each other.  



Summary
  • Abstract class fields are not static or final as opposed to interface which has static and final tables.
  • No implementation code can be used in interfaces while it can be used in abstract class.
  • Interface visibility can only be public while abstract class visibility can vary.
  • An abstract class will automatically inherit the object class, but it is not possible in interface.
  • Abstract class is faster than interface in implementation.
You might also like…



پاسخ با نقل قول
پاسخ


کاربران در حال دیدن موضوع: 1 نفر (0 عضو و 1 مهمان)
 

مجوز های ارسال و ویرایش
شما نمیتوانید موضوع جدیدی ارسال کنید
شما امکان ارسال پاسخ را ندارید
شما نمیتوانید فایل پیوست در پست خود ضمیمه کنید
شما نمیتوانید پست های خود را ویرایش کنید

BB code is فعال
شکلک ها فعال است
کد [IMG] فعال است
اچ تی ام ال غیر فعال می باشد



اکنون ساعت 01:30 PM برپایه ساعت جهانی (GMT - گرینویچ) +3.5 می باشد.



Powered by vBulletin® Version 3.8.4 Copyright , Jelsoft Enterprices مدیریت توسط کورش نعلینی
استفاده از مطالب پی سی سیتی بدون ذکر منبع هم پیگرد قانونی ندارد!! (این دیگه به انصاف خودتونه !!)
(اگر مطلبی از شما در سایت ما بدون ذکر نامتان استفاده شده مارا خبر کنید تا آنرا اصلاح کنیم)


سایت دبیرستان وابسته به دانشگاه رازی کرمانشاه: کلیک کنید




  پیدا کردن مطالب قبلی سایت توسط گوگل برای جلوگیری از ارسال تکراری آنها