# Om Objekt Orientering
__
author: krm
created: 2023-02-10
status: alpha
__

# 1. Vad innebär att en klass ärver från en annan klass?
- ✅ Att medlemar deklarerade i B också finns i A.
- Att metoder och fält deklarerade i A också finns i B.
- Att A skapas helt automatiskt ifrån B.
- Att A+B är definerad.

# 2. Vad innebär multipelt arv?
- ✅ Att en klass endast kan ärvas ifrån en annan klass.
- Anledningen till java är ett dåligt språk.
- Att flera olika klasser kan ärva ifrån samma klass.
- Att en klass kan ha ärvt ifrån flera olika klasser.

# 3. Ge ett exempel på ett språk som har multipelt arv.
- ✅ C++
- Java
- C#
- js

# 4. Vad är ett "interface" js?
- Ett fält som har ärvs i från en annan klass.
- ✅ Ett kontrakt som klassen lovar att uppfylla.
- En tom klass.
- En basklass.

# 5. Om en klass A ärver från en klass B och klass B ärver från en klass C. För ett objekt som skapas från A, vad gäller för dess medlemar?
- ✅ A har medlemar från A, B och C.
- A har medlemar från B
- A har medlemar från C
- A har medlemar från sig självt.
- A har inga medlemar.

# 🪧 Utgå från koden nedan.

```js
class C {
  a = 0
  b = NaN
  c = 3
}

class B extends C {
  b = 5;
}

class A extends B {
  a = 3;
}


const aa = new A();
const bb = new B();
const cc = new C();
```

## 6. Vad är värdet av uttrycket "aa.a"?
- ▶️ let-have-numbers2
- ✅ 3

## 7. Vad är värdet av uttrycket "aa.b+aa.c"?
- ▶️ let-have-numbers2
- ✅ 8

## 8. Vad är värdet av uttrycket "bb.a+cc.b"?
- ▶️ let-have-numbers2
- ✅ NaN

## 9. Vad är värdet av uttrycket "cc.a+cc.c+aa.a+bb.b"?
- ▶️ let-have-numbers2
- ✅ 11
