07-06-2013، 01:57 PM
برای تمرین یک کلاس انتزاعی قبل از کلمه کلیدی class کلمه abstract را می نویسیم سپس برای تعریف هر تابع مجازی باید قبل از تعریف هر تابع از کلمه abstract استفاده کنیم .زمانی که در کلاسهای فرزند به ریختهای مختلف توابع مجازی را تعریف می کنیم باید قبل از تعریف تابع از کلمه override استفاده کنیم.
مثال)کلاسی به نام شکل تعریف کنید که الف )در این کلاس بتوان کلاسهای مستطیل،دایره و مربع را از آن ارث ببرد(توابع مساحت و محیط به صورت مجازی تعریف شود)
ب) مساحت و محیط هر شکل را به طور جداگانه محاسبه و نمایش دهد.
مثال)کلاسی به نام شکل تعریف کنید که الف )در این کلاس بتوان کلاسهای مستطیل،دایره و مربع را از آن ارث ببرد(توابع مساحت و محیط به صورت مجازی تعریف شود)
ب) مساحت و محیط هر شکل را به طور جداگانه محاسبه و نمایش دهد.
کد:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace shape
{
class Program
{
abstract class shape
{
public abstract void mohit();
public abstract void masahat();
public abstract void input();
};
class rect : shape
{
private int x, y;
public override void mohit()
{
int m = (x * y) * 2;
Console.WriteLine("Mohit mostatil = "+m.ToString());
}
public override void masahat()
{
int s = x * y;
Console.WriteLine("Masahat mostatil = "+s.ToString());
}
public override void input()
{
x = Convert.ToInt32(Console.ReadLine());
y = Convert.ToInt32(Console.ReadLine());
}
};
class circle:shape
{
private double r;
public override void masahat()
{
double s = r * r * 3.14;
Console.WriteLine("Masahat daiere = "+s.ToString());
}
public override void mohit()
{
double m=2*3.14*r;
Console.WriteLine("Mohit daiere = "+m.ToString());
}
public override void input()
{
r=Convert.ToDouble(Console.ReadLine());
}
}
class moraba:shape
{
private int x;
public override void masahat()
{
int s=x*x;
Console.WriteLine("Masahat Moraba = "+s.ToString());
}
public override void mohit()
{
int m=x*4;
Console.WriteLine("Mohit Moraba = " + m.ToString());
Console.WriteLine(m.ToString());
}
public override void input()
{
x=Convert.ToInt32(Console.ReadLine());
}
}
static void Main(string[] args)
{
shape s;
rect r;
r=new rect();
s=r;
s.input();
s.masahat();
s.mohit();
circle c;
c=new circle();
s=c;
s.input();
s.masahat();
s.mohit();
moraba m;
m=new moraba();
s=m;
s.input();
s.masahat();
s.mohit();
Console.ReadKey();
}
}
}
*شما قادر به دیدن لینک ها نیستید ثبت نام کنید یا وارد حساب خود شوید تا بتوانید لینک ها را ببینید*
خورشید باش که اگر خواستی بر کسی نتابی نتوانی.