Abstract - PowerPoint PPT Presentation

1 / 10
About This Presentation
Title:

Abstract

Description:

Abstract & sealed Abstrakta klasser Vad r en abstrakt klass? En abstrakt klass r en klass d r man inte kan skapa n gra objekt som bara tillh r den klassen. – PowerPoint PPT presentation

Number of Views:83
Avg rating:3.0/5.0
Slides: 11
Provided by: ictKthSe
Category:
Tags: abstract

less

Transcript and Presenter's Notes

Title: Abstract


1
Abstract sealed
2
Abstrakta klasser
  • Vad är en abstrakt klass?
  • En abstrakt klass är en klass där man inte kan
    skapa några objekt som bara tillhör den klassen.
    Däremot går det att skapa objekt av dess härledda
    klasser.
  • en abstrakt basklass är alltså en ren basklass,
    referenser av den typen kan finnas, men inte
    objektet.

abstract class Shape .

3
Abstrakta klasser
  • Designdilemma i OOP
  • Basklasser ska vara abstrakta, tidlösa, allmänna
    och utan konkreta detaljer.
  • Härledda klasser ska vara konkretiseringar med
    alla nödvändiga implementationsdetaljer.
  • Men samtidigt vill man använda basklassreferenser
    för att på ett generellt sätt hantera objekt av
    härledda klasser, och då måste ju de medlemmar
    som ska anropas finnas i basklassen.
  • Lösning
  • Att i basklassen ha ett antal metoder som finns
    där bara till namnet, enbart för att kunna
    anropas via basklassreferenser.
  • Dessa metoder kallas för placeholder och består
    av metoder utan implementation ? abstrakta
    metoder.

4
Abstrakta metoder
abstract class Shape public
abstract double Area()
  • En abstrakt metod har ingen kropp och därmed
    ingen implementation. Implementationen ersätts av
    ett semikolon.
  • Det är endast tillåtet att deklarera abstrakta
    metoder i en abstrakt klass. D.v.s. en abstrakt
    metod tvingar klassen att vara abstrakt men inte
    tvärtom.
  • I en abstrakt klass kan finnas icke abstrakta
    metoder.
  • En abstrakt metod är implicit virtuell och måste
    därför implementeras med en override metod i alla
    härledda klasser.
  • den abstrakta metoden måste implementeras i
    härledd klass, annars blir även den klassen
    abstrakt.

5
Abstrakta metoder
abstract class Shape public abstract
double Area() class Circle Shape
private int radius public int Radius
get return radius
set radius value
public override double Area()
return System.Math.PI radius
radius
6
Abstrakta egenskaper
  • Det går att deklarera egenskaper som abstrakta i
    en abstrakt klass.
  • Implementationen för get och set ersätts med en
    semikolon.
  • I en härledd klass måste dessa egenskaper
    markeras override.

7
Abstrakta egenskaper
abstract class Shape public abstract
double Area() public abstract int X
get set public abstract int Y get
set class Circle Shape private
int radius private int x
private int y public override int X
get return x
set x value
public override int Y
get return y
set y value
public int Radius
get return radius set
radius value public
override double Area() return
System.Math.PI radius radius
8
Abstrakta klasser
  • För att dra detta tänkande ytterligare ett steg
    kan man tänka sig basklasser som enbart är
    avsedda att vara paket av abstrakta metoder och
    egenskaper.
  • En slags standarsuppsättningar av metodnamn /
    egenskapsnamn som används som basklasser och
    därmed ger flera av härledda klasser ett slags
    standardutseende ett gemensamt gränssnitt.

9
Sealed klass
  • För att skapa en klass som hindrar andra klasser
    att ärva ifrån den då markeras klassen med
    nyckelordet sealed.
  • D.v.s. sealed klass kan aldrig vara en basklass
    till ngn annan klass.
  • Om ngn klass försöker ärva från en sealed klass,
    då genereras ett kompileringsfel.
  • En sealed klass kan inte deklarera en virtuell
    metod.
  • Det går att deklarera en metod som sealed. Detta
    betyder att den härledda klassen inte kan skriva
    om implementationen för den sealed metoden.

10
  • En abstakt metod presenterar namnet på en metod.
    Ingen implementation
  • En virtuell metod är den första implementeringen
    av en metod.
  • En override metod är ytterliggare en
    implementering av en metod.
  • En sealed metod är den sista implementeringen av
    en metod.
Write a Comment
User Comments (0)
About PowerShow.com