IDS: Intrusion Detection System

intrusion detection system concepts and techniques

IDS: Intrusion Detection System

intrusion detection system concepts and techniques

مفهوم Covariant return type در جاوا

همانطور که می‌دانیم در overriding  نوع بازگشتی از متد زیر کلاس subclass(متدی که در زیر کلاس override شده است) باید مشابه با نوع بازگشت داده شده از متد کلاس پدر باشد(superclass).البته در نسخه های ۵ به بعد جاوا این رویه تغییر پیدا کرده و ویژگی Covariant return type معرفی شد.با استفاده از این ویژگی override نمودن هر متدی  بوسیله تغییر در مقدار بازگشتی آن امکان‌پذیر است.اگر مقداری که توسط متدی که در زیر کلاس override شده یک subtype از مقدار بازگشت داده شده توسط متدی باشد که آن را در زیر کلاس override کرده‌ایم یعنی دقیقاً مشابه آن نباشد آنگاه می‌گوییم که از covariant return type استفاد کرده ایم.به زبان ساده‌تر اگر نوع داده ای که توسط متد override شده در زیر کلاس بازگردانده می‌شود یک زیر کلاس از نوع بازگشت داده شده توسط متدی باشد که آن را override کرده‌ایم آنگاه این ویژگی معروف به  covariant return type است.
برای استفاده از این ویژگی در جاوا سه قانون مهم وجود دارد
1- اگر نوع بازگشتی متد کلاس پدر object باشد آنگاه نوع بازگشتی متد فرزند باید مشابه و یا یکی از انواع string,stringuffer,number,integer باشد و نمی‌تواند از انواع داده اصلی باشد primitive type
2-نوع بازگشتی متد زیر کلاس نمی‌تواند نوع والد باشد.برای مثال اگر مقدار بازگشتی متد کلاس پدر string باشد آنگاه مقدار بازگشتی متد زیر کلاس نمی‌تواند object باشد.
3-ویژگی covariant return type  تنها برای اشیاء صادق است نه انواع داده primitive


package covariantReturnType;
public class A
{
 public Object m1()
 {
   System.out.println("Hello, this is a superclass");
    return null;
  }
}
public class B extends A
{
 @Override
  public String m1()
  {
     System.out.println("Hello, this is the subclass");
      return null;
  }
 }
public class AB
{
  public static void main(String[] args)
  {
     B b = new B();
      b.m1();
     A a = new B();
      a.m1();
   }
 }

یکی از کاربرد های این ویژگی  کوتاه نمودن کد نویسی در upcasting و downcasting است

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد