*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle
TypeScript, JavaScript dilinin üst kümesi olan bir yazılım geliştirme aracıdır. JavaScript'in sunduğu yapıları daha sıkı ve güçlü bir şekilde kontrol eder. Bu nedenle, TypeScript ile kalıtım ve polimorfizm işlevleri açısından JavaScript dilinde yapılan işlemlerin benzerlerini de uygulayabiliriz. Bu yazıda TypeScript ile kalıtım ve polimorfizm konularını ele alacağız.
TypeScript ile Kalıtım
Kalıtım, bir sınıfın başka bir sınıftan özelliklerini ve davranışlarını devralmasıdır. TypeScript ile kalıtım, bir sınıfın bir diğer sınıftan özelliklerini almasını sağlamak için 'extends' anahtar sözcüğü kullanarak yapılır.
Örneğin, aşağıdaki kod bloğunda, 'Employee' sınıfı, 'Person' sınıfından 'firstName' ve 'lastName' özelliklerini devralır:
```typescript
class Person {
firstName: string;
lastName: string;
constructor(firstName: string, lastName: string) {
this.firstName = firstName;
this.lastName = lastName;
}
}
class Employee extends Person {
jobTitle: string;
constructor(firstName: string, lastName: string, jobTitle: string) {
super(firstName, lastName);
this.jobTitle = jobTitle;
}
}
```
Burada 'Person' sınıfı, 'firstName' ve 'lastName' özelliklerini içerir ve 'constructor' fonksiyonuyla oluşturulur. 'Employee' sınıfı ise, 'Person' sınıfından genişler ve 'jobTitle' özelliğini içerir.
TypeScript ile Polimorfizm
Polimorfizm, aynı yapıda birden fazla nesnenin farklı davranışlar sergilemesidir. TypeScript ile polimorfizm, sınıfların aynı yöntemi farklı şekillerde uygulayabilmesi için kullanılır. Bu, Java ve C++ gibi dillerde kullanılan polimorfizm ile benzerdir.
Örneğin, 'Shape' adında bir sınıfımız olsun ve 'area' adında bir fonksiyonu bulunsun. Bu fonksiyon, farklı şekiller için hesaplama yapmasını sağlayan bir işlevdir.
```typescript
abstract class Shape {
abstract area(): number;
}
class Circle extends Shape {
radius: number;
constructor(radius: number) {
super();
this.radius = radius;
}
area() {
return Math.PI * this.radius ** 2;
}
}
class Rectangle extends Shape {
width: number;
height: number;
constructor(width: number, height: number) {
super();
this.width = width;
this.height = height;
}
area() {
return this.width * this.height;
}
}
```
Burada 'Shape' sınıfı soyut bir sınıftır ve 'area' fonksiyonu soyutlandırılmıştır, bu nedenle 'Shape' sınıfından doğrudan nesne oluşturulamaz. 'Circle' ve 'Rectangle' sınıfları, 'Shape' sınıfından genişlemekte olup, kendi 'area' fonksiyonlarını uygularlar.
Sık Sorulan Sorular
S: TypeScript ile kalıtım ve polimorfizm neden önemlidir?
C: Kalıtım ve polimorfizm, yeniden kullanılabilirliği artırır ve kod yazımını daha kolay ve az hata yapabilecek hale getirir. Ayrıca, kodun daha okunaklı ve anlaşılabilir olmasını sağlar.
S: TypeScript ile kalıtım ve polimorfizm arasındaki fark nedir?
C: Kalıtım, sınıfların özelliklerini ve davranışlarını başka sınıflardan miras aldıkları bir işlemdir. Polimorfizm ise, aynı yöntemi aynı yapıda birden fazla nesnenin farklı şekillerde uygulayabilmesini sağlayan bir işlemdir.
S: TypeScript ile Kalıtım ve polimorfizm herhangi bir kısıtlama var mı?
C: TypeScript, kalıtım ve polimorfizm işlemlerinde statik bir tip kontrolü yapar ve bu nedenle dinamik olmayı desteklemez. Bu durum, bazen bazı karmaşık durumlarda sorunlara neden olabiliyor olabilir.
TypeScript, JavaScript dilinin üst kümesi olan bir yazılım geliştirme aracıdır. JavaScript'in sunduğu yapıları daha sıkı ve güçlü bir şekilde kontrol eder. Bu nedenle, TypeScript ile kalıtım ve polimorfizm işlevleri açısından JavaScript dilinde yapılan işlemlerin benzerlerini de uygulayabiliriz. Bu yazıda TypeScript ile kalıtım ve polimorfizm konularını ele alacağız.
TypeScript ile Kalıtım
Kalıtım, bir sınıfın başka bir sınıftan özelliklerini ve davranışlarını devralmasıdır. TypeScript ile kalıtım, bir sınıfın bir diğer sınıftan özelliklerini almasını sağlamak için 'extends' anahtar sözcüğü kullanarak yapılır.
Örneğin, aşağıdaki kod bloğunda, 'Employee' sınıfı, 'Person' sınıfından 'firstName' ve 'lastName' özelliklerini devralır:
```typescript
class Person {
firstName: string;
lastName: string;
constructor(firstName: string, lastName: string) {
this.firstName = firstName;
this.lastName = lastName;
}
}
class Employee extends Person {
jobTitle: string;
constructor(firstName: string, lastName: string, jobTitle: string) {
super(firstName, lastName);
this.jobTitle = jobTitle;
}
}
```
Burada 'Person' sınıfı, 'firstName' ve 'lastName' özelliklerini içerir ve 'constructor' fonksiyonuyla oluşturulur. 'Employee' sınıfı ise, 'Person' sınıfından genişler ve 'jobTitle' özelliğini içerir.
TypeScript ile Polimorfizm
Polimorfizm, aynı yapıda birden fazla nesnenin farklı davranışlar sergilemesidir. TypeScript ile polimorfizm, sınıfların aynı yöntemi farklı şekillerde uygulayabilmesi için kullanılır. Bu, Java ve C++ gibi dillerde kullanılan polimorfizm ile benzerdir.
Örneğin, 'Shape' adında bir sınıfımız olsun ve 'area' adında bir fonksiyonu bulunsun. Bu fonksiyon, farklı şekiller için hesaplama yapmasını sağlayan bir işlevdir.
```typescript
abstract class Shape {
abstract area(): number;
}
class Circle extends Shape {
radius: number;
constructor(radius: number) {
super();
this.radius = radius;
}
area() {
return Math.PI * this.radius ** 2;
}
}
class Rectangle extends Shape {
width: number;
height: number;
constructor(width: number, height: number) {
super();
this.width = width;
this.height = height;
}
area() {
return this.width * this.height;
}
}
```
Burada 'Shape' sınıfı soyut bir sınıftır ve 'area' fonksiyonu soyutlandırılmıştır, bu nedenle 'Shape' sınıfından doğrudan nesne oluşturulamaz. 'Circle' ve 'Rectangle' sınıfları, 'Shape' sınıfından genişlemekte olup, kendi 'area' fonksiyonlarını uygularlar.
Sık Sorulan Sorular
S: TypeScript ile kalıtım ve polimorfizm neden önemlidir?
C: Kalıtım ve polimorfizm, yeniden kullanılabilirliği artırır ve kod yazımını daha kolay ve az hata yapabilecek hale getirir. Ayrıca, kodun daha okunaklı ve anlaşılabilir olmasını sağlar.
S: TypeScript ile kalıtım ve polimorfizm arasındaki fark nedir?
C: Kalıtım, sınıfların özelliklerini ve davranışlarını başka sınıflardan miras aldıkları bir işlemdir. Polimorfizm ise, aynı yöntemi aynı yapıda birden fazla nesnenin farklı şekillerde uygulayabilmesini sağlayan bir işlemdir.
S: TypeScript ile Kalıtım ve polimorfizm herhangi bir kısıtlama var mı?
C: TypeScript, kalıtım ve polimorfizm işlemlerinde statik bir tip kontrolü yapar ve bu nedenle dinamik olmayı desteklemez. Bu durum, bazen bazı karmaşık durumlarda sorunlara neden olabiliyor olabilir.
*256 Bit SSL Sertifikası * Full Mobil Uyumlu * Full SEO Uyumlu
İsterseniz Mobil Uygulama Seçeneğiyle