« PIE | صفحه اصلی | Encapsulation »
Inheritance
May 28, 2007 02:35 PM
Inheritance به معني ارث بري ويژگي هاي يك class از class ديگر است.
در جاوا دو گونه inheritance وجود دارد :
در جاوا دو گونه inheritance وجود دارد :
1- Implementation inheritance (Class Inheritance)
اين، ارث بري از يك class است و با عبارت extends انجام مي شود. در اينجا مي توان همه يا برخي از ويژگي ها و متدهاي يك class را به ارث برد. هر class تنها مي تواند فقط يك superclass داشته باشد.
مثال:
مثال:
public abstract class Account{
Public void deposit(double amount){
……..
}
public void withdraw(double amount){
……..
}
}
public class SavingsAccount extends Account{
Public double calculateInterest(double amount){
……..
}
}
2- Interface inheritance (Type Inheritance) يا SubTyping
Public void deposit(double amount){
……..
}
public void withdraw(double amount){
……..
}
}
public class SavingsAccount extends Account{
Public double calculateInterest(double amount){
……..
}
}
2- Interface inheritance (Type Inheritance) يا SubTyping
اين، يك مكانيزم برقراري ارتباط است بين class هايي كه حتي با هم ارتباط ندارند. همچنين يك class مي تواند چندين interface را implement نمايد. كلا استفاده از اين روش بيشتر توصيه شده است.
مثال:
مثال:
public interface Account{
public abstract void deposit(double amount);
public abstract void withdraw(double amount);
}
public interface SavingAccount extends Account {
Public abstract double calculateInterest(double amount);
}
public class SavingAccountImpl implements SavingAccount{
AccountHelper helper = new AccountHelper();
public void deposit(double amount){
………
}
public void withdraw(double amount){
………
}
}
public abstract void deposit(double amount);
public abstract void withdraw(double amount);
}
public interface SavingAccount extends Account {
Public abstract double calculateInterest(double amount);
}
public class SavingAccountImpl implements SavingAccount{
AccountHelper helper = new AccountHelper();
public void deposit(double amount){
………
}
public void withdraw(double amount){
………
}
}
همانطور كه مي بينيد در interface تعريف متغير وجود ندارد. همچنين بدنه و پياده سازي متدها، در interface قابل تعريف نيست. تنها declaration متدها در interface مي آيد.
نظرخواهی