{"id":220,"date":"2017-07-13T09:39:56","date_gmt":"2017-07-13T09:39:56","guid":{"rendered":"http:\/\/damrakoc.com\/blog\/?p=220"},"modified":"2020-01-17T15:50:36","modified_gmt":"2020-01-17T15:50:36","slug":"interface-ve-abstract-class-nedir-arasindaki-farklar","status":"publish","type":"post","link":"http:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/","title":{"rendered":"interface ve abstract class nedir?  aras\u0131ndaki farklar?"},"content":{"rendered":"<p>Bu yaz\u0131mda size <strong>interface<\/strong> ve <strong>abstract class<\/strong> aras\u0131ndaki farklardan ve kullan\u0131lma \u015feklinden bahsedece\u011fim. Bu iki kavram\u0131 yaz\u0131l\u0131mla ilgilen hemen hemen herkes duymu\u015ftur ama kullan\u0131m a\u00e7\u0131s\u0131ndan ne i\u015fe yarad\u0131\u011f\u0131n\u0131 veya nerde kullan\u0131lmas\u0131 gerekti\u011fini pek bilen yoktur. Bu iki kavram hem m\u00fclakatlarda s\u0131k s\u0131k kar\u015f\u0131n\u0131za \u00e7\u0131kacakt\u0131r hem de kullanmay\u0131 \u00f6\u011frendikten sonra i\u015finizi daha k\u0131sa s\u00fcrede yapman\u0131z\u0131 sa\u011flayacakt\u0131r.<\/p>\n<p>&nbsp;<\/p>\n<p style=\"text-align: center;\"><strong>ABSTRACT CLASS (SOYUT SINIF)<\/strong><\/p>\n<ol>\n<li style=\"text-align: left;\">Tasar\u0131m\u0131 zarif hale getiriyor.<\/li>\n<li style=\"text-align: left;\">Teknik tan\u0131m\u0131 en az bir tane soyut y\u00f6ntem i\u00e7eren s\u0131n\u0131ft\u0131r.<\/li>\n<li style=\"text-align: left;\">Soyut y\u00f6ntem demek alt s\u0131n\u0131fta tekrar tan\u0131mlanmas\u0131 zorunlu y\u00f6ntem demektir.<\/li>\n<li style=\"text-align: left;\">E\u011fer bir s\u0131n\u0131f \u00fcst s\u0131n\u0131f\u0131n y\u00f6ntemlerinden birini bile i\u00e7ermiyorsa o s\u0131n\u0131fta soyut olur.<\/li>\n<li style=\"text-align: left;\">De\u011fi\u015fkenler soyut olamaz ancak y\u00f6ntemler soyut olur.<\/li>\n<li style=\"text-align: left;\">Soyut s\u0131n\u0131flarda asla kod yaz\u0131lmaz. Sadece y\u00f6ntemin imzas\u0131 kullan\u0131l\u0131r.<\/li>\n<li style=\"text-align: left;\">Soyut bir s\u0131n\u0131f\u0131n yap\u0131c\u0131 tan\u0131ml\u0131 olsa bile asla nesnesini yaratamay\u0131z. Di\u011fer bir deyi\u015fle soyut bir s\u0131n\u0131f asla bir nesnenin ger\u00e7ek tipi de\u011fildir.<\/li>\n<\/ol>\n<p style=\"text-align: left;\">Soyut bir s\u0131n\u0131f\u0131n alt s\u0131n\u0131f\u0131;<\/p>\n<ul>\n<li style=\"text-align: left;\">\u00dcst s\u0131n\u0131f\u0131n b\u00fct\u00fcn abstract y\u00f6ntemlerini tan\u0131mlayabilir, bu durumda art\u0131k bu alt s\u0131n\u0131f soyut s\u0131n\u0131f de\u011fildir.<\/li>\n<li style=\"text-align: left;\">Ona miras kalan abstract y\u00f6ntemlerinin en az birini bile tan\u0131mlamazsa oda soyuttur.<\/li>\n<\/ul>\n<p style=\"text-align: center;\"><strong>INTERFACE (ARAY\u00dcZ)<\/strong><\/p>\n<ol>\n<li>Bir aray\u00fcz i\u00e7inde hi\u00e7bir \u00f6zellik bulundurmaz. \u0130\u00e7erisinde de\u011fi\u015fken olmaz.<\/li>\n<li>Bir aray\u00fcz sadece soyut y\u00f6ntemler bulundurur. Soyut s\u0131n\u0131flar gibidir. Ama s\u0131n\u0131f de\u011fildir.<\/li>\n<li>Java da bir alt s\u0131n\u0131f\u0131n birden fazla \u00fcst s\u0131n\u0131f\u0131 olam\u0131yor ancak bir s\u0131n\u0131f\u0131n birden fazla uygulad\u0131\u011f\u0131 aray\u00fcz\u00fc olabilir.<\/li>\n<li>Aray\u00fczler de\u011fi\u015fken tan\u0131m\u0131nda kullan\u0131labilen bildirim tipleridir.<\/li>\n<li>\u00c7oklu aray\u00fcz uygulama \u00e7oklu kal\u0131t\u0131mdan (multiple inheritance) farkl\u0131, \u00e7\u00fcnk\u00fc kod miras\u0131 kalm\u0131yor. Ancak bir aray\u00fcz kal\u0131t\u0131m ile (extends) ba\u015fka aray\u00fczlerden t\u00fcretilebilir.<\/li>\n<li>Bir aray\u00fcz\u00fcn alt aray\u00fcz\u00fc olabilir. \u00dcst aray\u00fczden, alt aray\u00fcze t\u00fcm y\u00f6ntem bildirimleri miras kal\u0131r.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p><center><strong>ARALARINDAK\u0130 FARKLAR?<\/strong><\/center><\/p>\n<p style=\"text-align: left;\"><strong>extends<\/strong>\u2019ten sonra sadece bir s\u0131n\u0131f olur. <strong>implements<\/strong>\u2019ten sonra istedi\u011fimiz kadar aray\u00fcz olur.<br \/>\nAbstract; kendisinden yeni bir nesne yarat\u0131lmayacak ancak ba\u015fka s\u0131n\u0131flar\u0131n <strong>superclass<\/strong>\u0131 olarak kullan\u0131labilecek. Interface; bir i\u015fi ger\u00e7ekle\u015ftirecek t\u00fcm s\u0131n\u0131flar\u0131n ayn\u0131 metod tan\u0131mlar\u0131n\u0131 i\u00e7ermesini sa\u011flayacak.<\/p>\n<ul>\n<li>Interfaceler \u00e7oklu kal\u0131t\u0131m\u0131 sa\u011flamaya yard\u0131mc\u0131,\u00a0Abstract classlar ise \u00e7oklu kal\u0131t\u0131m\u0131 desteklemez.<\/li>\n<li>Interfacelerde metodlar\u0131n i\u00e7erisini dolduramay\u0131z ama Abstract classlarda doldurabiliriz. B\u00f6ylece b\u00fct\u00fcn alt s\u0131n\u0131flar\u0131n belli bir \u00f6zelli\u011fe sahip olmas\u0131n\u0131 sa\u011flayabiliriz.<\/li>\n<li>Interface ile yapabildi\u011fimiz her\u015feyi hatta daha fazlas\u0131n\u0131 abstract classlar ile de yapabiliriz.<\/li>\n<li>T\u00fcretece\u011fimiz classlarda belli ba\u015fl\u0131 varsay\u0131lan \u00f6zellikleri tekrar tekrar kopyala-yap\u0131\u015ft\u0131r yapmak istemiyorsak o zaman abstract class kullanmam\u0131z gerekir. \u00c7\u00fcnk\u00fc abstract classlarla bir metodu t\u00fcm alt classlarda varsay\u0131lan metod \u015feklinde tan\u0131mlayabiliriz ve alt classlarda bunlar\u0131 tekrar yazmam\u0131za gerek kalmaz kal\u0131t\u0131mla aktar\u0131lm\u0131\u015f olur.<\/li>\n<li>Kal\u0131t\u0131m sa\u011flamak istiyorsak abstract classlar kullanmam\u0131z gerekir.<\/li>\n<li>Abstract classlar\u0131 kullanmak h\u0131z a\u00e7\u0131s\u0131ndan avantaj sa\u011flar.<\/li>\n<li>Interface de yeni bir metod yazd\u0131\u011f\u0131m\u0131z zaman bu interfaceden implement etti\u011fimiz t\u00fcm classlarda bu metodun i\u00e7ini tek tek doldurmak gerekiyor ancak abstract classlarda durum farkl\u0131d\u0131r burada bir metod tan\u0131mlay\u0131p i\u00e7ini doldurdu\u011fumuzda abstract s\u0131n\u0131f\u0131m\u0131zdan t\u00fcretilmi\u015f b\u00fct\u00fcn s\u0131n\u0131flar bu \u00f6zelli\u011fi kazanm\u0131\u015f olur.<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>Bu yaz\u0131mda size interface ve abstract class aras\u0131ndaki farklardan ve kullan\u0131lma \u015feklinden bahsedece\u011fim. Bu iki kavram\u0131 yaz\u0131l\u0131mla ilgilen hemen hemen herkes duymu\u015ftur ama kullan\u0131m a\u00e7\u0131s\u0131ndan ne i\u015fe yarad\u0131\u011f\u0131n\u0131 veya nerde kullan\u0131lmas\u0131 gerekti\u011fini pek bilen yoktur. Bu iki kavram hem m\u00fclakatlarda s\u0131k s\u0131k kar\u015f\u0131n\u0131za \u00e7\u0131kacakt\u0131r hem de kullanmay\u0131 \u00f6\u011frendikten sonra i\u015finizi daha k\u0131sa s\u00fcrede yapman\u0131z\u0131 sa\u011flayacakt\u0131r. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":250,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-220","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-java"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>interface ve abstract class nedir? aras\u0131ndaki farklar? - Damra KO\u00c7<\/title>\n<meta name=\"description\" content=\"interface ve abstract class nedir\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"interface ve abstract class nedir? aras\u0131ndaki farklar? - Damra KO\u00c7\" \/>\n<meta property=\"og:description\" content=\"interface ve abstract class nedir\" \/>\n<meta property=\"og:url\" content=\"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/\" \/>\n<meta property=\"og:site_name\" content=\"Damra KO\u00c7\" \/>\n<meta property=\"article:published_time\" content=\"2017-07-13T09:39:56+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-01-17T15:50:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/damrakoc.com\/blog\/wp-content\/uploads\/2017\/07\/OpMyR.png\" \/>\n\t<meta property=\"og:image:width\" content=\"298\" \/>\n\t<meta property=\"og:image:height\" content=\"169\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"damrakoc\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@damra_koc\" \/>\n<meta name=\"twitter:site\" content=\"@damra_koc\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"damrakoc\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/\",\"url\":\"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/\",\"name\":\"interface ve abstract class nedir? aras\u0131ndaki farklar? - Damra KO\u00c7\",\"isPartOf\":{\"@id\":\"http:\/\/damrakoc.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/#primaryimage\"},\"thumbnailUrl\":\"http:\/\/damrakoc.com\/blog\/wp-content\/uploads\/2017\/07\/OpMyR.png\",\"datePublished\":\"2017-07-13T09:39:56+00:00\",\"dateModified\":\"2020-01-17T15:50:36+00:00\",\"author\":{\"@id\":\"http:\/\/damrakoc.com\/blog\/#\/schema\/person\/c0aef33e15396f85a26d08495c742b8b\"},\"description\":\"interface ve abstract class nedir\",\"breadcrumb\":{\"@id\":\"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/#primaryimage\",\"url\":\"http:\/\/damrakoc.com\/blog\/wp-content\/uploads\/2017\/07\/OpMyR.png\",\"contentUrl\":\"http:\/\/damrakoc.com\/blog\/wp-content\/uploads\/2017\/07\/OpMyR.png\",\"width\":298,\"height\":169},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"http:\/\/damrakoc.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"interface ve abstract class nedir? aras\u0131ndaki farklar?\"}]},{\"@type\":\"WebSite\",\"@id\":\"http:\/\/damrakoc.com\/blog\/#website\",\"url\":\"http:\/\/damrakoc.com\/blog\/\",\"name\":\"Damra KO\u00c7\",\"description\":\"Software Developer\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"http:\/\/damrakoc.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"http:\/\/damrakoc.com\/blog\/#\/schema\/person\/c0aef33e15396f85a26d08495c742b8b\",\"name\":\"damrakoc\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"http:\/\/damrakoc.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1a5d82872160ecc5a366412de9d017ead27f16fcfce7c8e46532199f18145f06?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1a5d82872160ecc5a366412de9d017ead27f16fcfce7c8e46532199f18145f06?s=96&d=mm&r=g\",\"caption\":\"damrakoc\"},\"url\":\"http:\/\/damrakoc.com\/blog\/author\/damrakoc\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"interface ve abstract class nedir? aras\u0131ndaki farklar? - Damra KO\u00c7","description":"interface ve abstract class nedir","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/","og_locale":"en_US","og_type":"article","og_title":"interface ve abstract class nedir? aras\u0131ndaki farklar? - Damra KO\u00c7","og_description":"interface ve abstract class nedir","og_url":"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/","og_site_name":"Damra KO\u00c7","article_published_time":"2017-07-13T09:39:56+00:00","article_modified_time":"2020-01-17T15:50:36+00:00","og_image":[{"width":298,"height":169,"url":"https:\/\/damrakoc.com\/blog\/wp-content\/uploads\/2017\/07\/OpMyR.png","type":"image\/png"}],"author":"damrakoc","twitter_card":"summary_large_image","twitter_creator":"@damra_koc","twitter_site":"@damra_koc","twitter_misc":{"Written by":"damrakoc","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/","url":"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/","name":"interface ve abstract class nedir? aras\u0131ndaki farklar? - Damra KO\u00c7","isPartOf":{"@id":"http:\/\/damrakoc.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/#primaryimage"},"image":{"@id":"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/#primaryimage"},"thumbnailUrl":"http:\/\/damrakoc.com\/blog\/wp-content\/uploads\/2017\/07\/OpMyR.png","datePublished":"2017-07-13T09:39:56+00:00","dateModified":"2020-01-17T15:50:36+00:00","author":{"@id":"http:\/\/damrakoc.com\/blog\/#\/schema\/person\/c0aef33e15396f85a26d08495c742b8b"},"description":"interface ve abstract class nedir","breadcrumb":{"@id":"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/#primaryimage","url":"http:\/\/damrakoc.com\/blog\/wp-content\/uploads\/2017\/07\/OpMyR.png","contentUrl":"http:\/\/damrakoc.com\/blog\/wp-content\/uploads\/2017\/07\/OpMyR.png","width":298,"height":169},{"@type":"BreadcrumbList","@id":"https:\/\/damrakoc.com\/blog\/interface-ve-abstract-class-nedir-arasindaki-farklar\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"http:\/\/damrakoc.com\/blog\/"},{"@type":"ListItem","position":2,"name":"interface ve abstract class nedir? aras\u0131ndaki farklar?"}]},{"@type":"WebSite","@id":"http:\/\/damrakoc.com\/blog\/#website","url":"http:\/\/damrakoc.com\/blog\/","name":"Damra KO\u00c7","description":"Software Developer","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"http:\/\/damrakoc.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"http:\/\/damrakoc.com\/blog\/#\/schema\/person\/c0aef33e15396f85a26d08495c742b8b","name":"damrakoc","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"http:\/\/damrakoc.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1a5d82872160ecc5a366412de9d017ead27f16fcfce7c8e46532199f18145f06?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1a5d82872160ecc5a366412de9d017ead27f16fcfce7c8e46532199f18145f06?s=96&d=mm&r=g","caption":"damrakoc"},"url":"http:\/\/damrakoc.com\/blog\/author\/damrakoc\/"}]}},"_links":{"self":[{"href":"http:\/\/damrakoc.com\/blog\/wp-json\/wp\/v2\/posts\/220","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/damrakoc.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/damrakoc.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/damrakoc.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/damrakoc.com\/blog\/wp-json\/wp\/v2\/comments?post=220"}],"version-history":[{"count":3,"href":"http:\/\/damrakoc.com\/blog\/wp-json\/wp\/v2\/posts\/220\/revisions"}],"predecessor-version":[{"id":223,"href":"http:\/\/damrakoc.com\/blog\/wp-json\/wp\/v2\/posts\/220\/revisions\/223"}],"wp:featuredmedia":[{"embeddable":true,"href":"http:\/\/damrakoc.com\/blog\/wp-json\/wp\/v2\/media\/250"}],"wp:attachment":[{"href":"http:\/\/damrakoc.com\/blog\/wp-json\/wp\/v2\/media?parent=220"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/damrakoc.com\/blog\/wp-json\/wp\/v2\/categories?post=220"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/damrakoc.com\/blog\/wp-json\/wp\/v2\/tags?post=220"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}