İçeriğe atla

Çoklu kalıtım

Elmas çoklu kalıtımı UML uyumlu gösterimde gösterir.

Çoklu kalıtım (multiple inheritance) bir sınıfın iki veya daha fazla üst sınıftan miras almasını sağlar.Pratikte karışıklıklara (miras alınan iki farklı sınıfta aynı isimde değişkenlerin bulunması gibi) sebep olabildiği için C++ içinde kullanılabilen bu yapı C# içinde kaldırılmış ve yerine arayüz (interface) mantığı getirilmiştir.

Örnek:

#include <iostream>
class A
 {protected:
   int a;
  public:
   void olustur_a (int i){a=i;}
  };
class B
 {protected:
   int b;
  public:
   void olustur_b (int i){b=i;}
  };
class C: public A, public B
 {
  public:
   int olustur_ab (){return a*b;}
  };

// Böyle bir kodda C classı işlemini yaparken hem A dan hem de B den değer devralır.

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">C++</span> bir programlama dili

C++, Bjarne Stroustrup tarafından 1979 yılında Bell Laboratuvarları'nda geliştirilmeye başlanmış, C'yi kapsayan ve çok paradigmalı, yaygın olarak kullanılan, genel amaçlı bir programlama dilidir.

<span class="mw-page-title-main">Java</span> açık kaynak kodlu, nesneye yönelik, zeminden bağımsız, yüksek verimli, çok işlevli, yüksek seviye, adım adım işletilen bir programlama dili

Java, Sun Microsystems mühendislerinden James Gosling tarafından geliştirilmeye başlanmış açık kaynak kodlu, nesneye yönelik, platform bağımsız, yüksek verimli, çok işlevli, yüksek seviye, hem yorumlanan hem de derlenen bir dildir.

ActionScript, Flash geliştiricilerinin sunum seviyesi mantığını tasarlamak için kullandıkları nesne yönelimli programlama dilidir. Actionscript ECMAscript üzerine inşa edilmiştir, ECMAscript JavaScript'in esasını oluşturduğu için birçok geliştirici için Actionscript'i anlamak kolaydır. Actionscript Flash içerik yazarlığı esnasında kullanılan özel aksiyonları destekleyen bazı ek ECMAscript özellikleri de içermektedir

Language Integrated Query .NET dillerine SQL benzeri sorgulama becerisi ekleyen bir Microsoft .NET Framework bileşenidir. "Link" diye okunur.

<span class="mw-page-title-main">Merhaba dünya programı</span> Geleneksel acemi bilgisayar programı

Merhaba dünya programı, görsel bir arayüz veya komut satırında "Merhaba dünya!" yazdıran bilgisayar programıdır. Bunun amacı, yeni öğrenilen programlama dilinde basit bir yazı yazmak ve programlama mantığını anlatmaktır.

<span class="mw-page-title-main">Preveze sınıfı denizaltı</span> Türk Donanmasında hizmette olan denizaltı sınıfı

Preveze sınıfı, Federal Almanya'nın Howaldtswerke Deutsche Werft AG firmasının geliştirdiği Tip 209 T1. 1400 tipinde üretilmiş, Türk Deniz Kuvvetleri'nde ilki 1994 yılında hizmete giren denizaltı sınıfıdır. Preveze sınıfı, Türk Deniz Kuvvetleri'ni Sub Harpoon UGM-84 ile tanıştırmıştır. Yarı ömür modernizasyonu Gölcük Tershanesi'nde tamamlamış, aktif hizmete devam etmektedir.

<span class="mw-page-title-main">Kabuk sıralaması</span>

Shell sıralaması, bilgisayar bilimlerinde kullanılan bir sıralama algoritmasıdır. Eklemeli sıralama algoritmasının aşağıdaki iki gözlem kullanılarak genelleştirilmiş biçimidir:

Sayarak sıralama bilgisayar bilimlerinde kullanılan ve kova sıralaması gibi sıralanacak dizinin içindeki değerlerin aralığının bilinmesi durumunda kullanılabilen bir sıralama algoritmasıdır. Sayarak sıralama algoritması dizideki değerlerin aralık bilgilerini yeni bir dizi oluşturmak için kullanır. Oluşturulan yeni dizinin her bir satırı ana dizide o satır numarasının değerine sahip ögelerin sayısını gösterir. Yeni dizideki öge değeri sayıları daha sonra ana dizideki tüm değerlerin doğru konuma konulması için kullanılır. Sayarak sıralama algoritması güvercin yuvası sıralamasından daha verimsiz bir algoritmadır.

<span class="mw-page-title-main">Oliver Hazard Perry sınıfı fırkateyn</span>

Oliver Hazard Perry sınıfı fırkateyn, ABD Deniz Kuvvetleri'nde hizmet etmiş olan fırkateyn sınıfı. Adını 1812 Savaşı'nda ABD Deniz Kuvvetleri'nin zaferine katkıda bulunup "Hero of Lake Erie" ("Erie Gölü Kahramanı") olarak anılan Komodor Oliver Hazard Perry 'den almıştır.

Çokbiçimlilik, bir türün bir başka tür gibi davranabilme ve bu tür gibi kullanılabilme özelliğidir. Nesne yönelimli programlama dillerinde çokbiçimlilik özelliği ise aynı temel sınıftan türetilmiş olan sınıflarda paylaşılan, başka bir ifadeyle aşırı yüklenen aynı metodun bu sınıflarda farklı şekillerde uyarlanabilmesidir. Nesnenin davranışı çalışma anında belirlendiği için programcılar, çokbiçimlilik özelliği sayesinde nesnelerin türünü önceden bilmek zorunda kalmaz.

<span class="mw-page-title-main">Sınıf (programlama)</span> nesne yönelimli programlamada, bir nesnenin nasıl çalıştığını belirten bir tanım

Sınıf, nesne yönelimli programlama dillerinde nesnelerin özelliklerini, davranışlarını ve başlangıç durumlarını tanımlamak için kullanılan şablonlara verilen addır. Bir sınıftan türetilmiş bir nesne ise o sınıfın örneği olarak tanımlanır. Sınıflar genelde şahıs, yer ya da bir nesnenin ismini temsil ederler. Sınıflar metotları ile nesnelerin davranışlarını, değişkenleri ile ise nesnelerin durumlarını kapsül ederler. Sınıflar hem veri yapısına hem de bir ara yüze sahiptirler. Sınıflar ile nasıl etkileşime girileceği bu ara yüzler sayesinde sağlanır. Örneğin bir sınıf şablonu ile renk özelliğine, tekerleklere ve sür metoduna sahip olan bir araba temsil edebilir.

<span class="mw-page-title-main">Kalıtım (programlama)</span>

Kalıtım, bir sınıfın üst sınıftan miras almasına denir. Pratikte karışıklıklara sebep olduğundan kimi programlama dilleri, ancak tekli kalıtıma izin verirler. Bu dillerde çoklu kalıtım yerine interface denilen nesnelerden faydalanılarak çoklu kalıtımın verdiği özellikler, yan etkileri olmaksızın kullanılabilmektedir. Çoklu kalıtıma izin veren programlama dillerindeyse doğrudan bir sınıfın birden fazla sınıftan miras alması mümkündür..

Bilgisayar programlamada dinamik iletim, altyordam çağrılarının ilişkin altyordam başlangıç adresine dinamik olarak bağlanmasıdır. Bir diğer deyişle, dinamik iletim program metnindeki bir çağrı ile işletilen altyordamın programın çalışması sırasında birbirine bağlanması durumudur. Geri çağrı ve çokbiçimliliğin realize edilmesinde kullanılan bu bağlama yöntemi, yordamsal programlama dillerinde altyordam göstericileriyle gerçekleştirilirken, nesne yönelimli dillerde kalıtlama ve gerçekleştirme ilişkilerinin kullanılmasıyla otomatikman sağlanır. Altyordamların birinci sınıf dil öğesi olarak ele alındığı fonksiyonel programlama dillerinde ise, aynı işlevsellik altyordamların argüman olarak geçirilmesi ile sağlanabilir.

Nesne yönelimli programlama dillerinde arayüz, değişik sınıflardan nesnelerin kategorize edilmesini sağlayan bir soyut tür çeşitidir. Tanımlanmakta olan kategorinin birbirleriyle alakasız sınıfları ortak bir çatı altında toplaması nedeniyle, arayüz tanımları, soyut sınıfların aksine, listeledikleri iletilerin gerçekleştirim ayrıntısı olan herhangi bir bilgi içeremezler. Dolayısıyla, bir arayüz tanımı iletilere karşılık gelen bir altyordam gövdesi veya altalan tanımı içeremez. Bir başka açıdan bakarsak, arayüz tanımında yer alan programlama öğelerinin zaman içinde değişme olasılığı düşük öğeler olması gerekir. Buna göre, arayüz tanımları gerçekleştirimci ile kullanıcının paylaştığı ve sabit olma özelliği bulunan altyordam imzaları ile simgesel sabit tanımlarını barındırabilir.

Soyut sınıf, nesne yönelimli programlamada nesnesi yaratılamayan sınıflara denir. Nesne yaratılamamasının nedeni, sınıfın kullanıcı arayüzünde yer alan bir veya daha çok sayıdaki iletinin gerçekleştirilmemesidir.

<span class="mw-page-title-main">OpenCL</span>

OpenCL,, Apple tarafından 2008 yılında kâr amacı gütmeyen teknoloji şirketleri birliği Khronos Group'a önerilen, kabul gördükten sonra spesifikasyonu pek çok şirketin katkılarıyla hazırlanan heterojen hesaplama platformudur. OpenCL; destekli grafik işlemcileri, genel amaçlı işlemciler ve FPGA ler gibi farklı platformlarda hesaplama yapılmasına olanak sağlar. OpenCL AMD, Intel, NVIDIA ve ARM tarafından desteklenmektedir. Ayrıca OpenCL kullanılarak Sony Playstation cihazlarında kullanılan Cell işlemcilerde de hesaplama yapılabilmektedir.

<span class="mw-page-title-main">Yazılım motoru</span> bilgisayar programının merkezi kısmı

Yazılım motoru, bilgisayar biliminde bir yazılımın altyapısı, temeli anlamına gelir. Yazılım motorları programı çalıştırabilmek için de kullanılmaktadır. Bu yazılımlar diğer programlardan farklıdır. Bir programın içerisinde çalışırlar veya bir bütün oluştururlar. Yazılım motorları bir tarayıcının içerisinde JavaScript motoru veya bir oyun motoru gibi çeşitli türlere sahiptirler. Web tarayıcısı içerisinde de JavaScript, AJAX gibi dillerde yazılmış eklentilerin çalışmasını sağlarlar.

Dart, ilk kez Google tarafından geliştirilen ve daha sonraları ECMA tarafından standart (ECMA-408) haline getirilen açık kaynaklı ve genel-amaçlı bir programlama dilidir. Dart dili kullanılarak web, sunucu, mobil uygulamalar ve IoT cihazları geliştirilebilir.

<span class="mw-page-title-main">Alphaproteobacteria</span>

Alphaproteobacteria, Proteobacteria şubesinde bir bakteri sınıfıdır. Üyeleri son derece çeşitlidir ve çok az benzerliğe sahiptir ancak yine de ortak bir atadandırlar. Tüm Proteobakteriler gibi, üyeleri gram-negatiftir fakat bazı hücre içi parazit üyeleri peptidoglikandan yoksundur ve bu nedenle gram değişkendir.

Sarmalayıcı kütüphaneler, bir kütüphanenin mevcut arayüzünü uyumlu bir arayüze çeviren ince bir kod katmanından oluşur. Bu, çeşitli nedenlerle yapılır: