JavaScript
Børre Stenseth
OOP > Arv >Eksempel4

Arv og klassestruktur

Hva

Her lager vi en subklasse til student, MasterStudent. En MasterStudent har en veileder.

Vi lager følgende Konstruksjon

_test4.js
// global list of persons
var pList=[];
function Person(navn,faar){
    this.navn=navn;
    this.faar=faar;
    this.getNavn=function(){return this.navn}
    this.getAlder=function(){
        return new Date().getFullYear()-this.faar
    }
}
function Student(navn,faar,linje){
    // implisitt prototyping
    // parameters as list
    Person.apply(this,[navn,faar]);
    this.linje=linje;
    this.getLinje=function(){return this.linje};
}
function MasterStudent(navn,faar,linje,veileder){
    // implisitt prototyping
    // parameters as list
    Student.apply(this,[navn,faar,linje]);
    this.veileder=veileder;    
    this.getVeileder=function(){return this.veileder};
}
function Professor(navn,faar,fakultet){
    // implisitt prototyping
    // parameters as list
    Person.apply(this,[navn,faar]);
    this.fakultet=fakultet
    this.getFakultet=function(){return this.fakultet}
}
function displayList(dumpid){
    var dmp=document.getElementById(dumpid);
    S="";
    for(var ix=0;ix < pList.length;ix++){
        var p=pList[ix];
        S+=p.getNavn()+" ("+p.getAlder()+" år) ";
        if(p instanceof MasterStudent)
            S+=", masterstudent ved "+p.getLinje()+
               ". veiledes av "+p.getVeileder().getNavn();
        if(p instanceof Student)
            S+=", studerer "+p.getLinje();
        if(p instanceof Professor)
            S+=", ansatt ved "+p.getFakultet();
        S+="<br/>";
    }
    dmp.innerHTML=S;
}

Så lager vi en serie objekter.

pList.push(new Person("Jensen",2001));
pList.push(new Student("Pedersen",1985,"Informatikk"));
pList.push(new Student("Hansen",1990,"Matematikk"));
pList.push(new Professor("Berg",1970,"Avdeling for IT"));
pList.push(new MasterStudent("Mo",1990,"Økonomi",pList[pList.length-1]));
pList.push(new Student("Holm",1993,"Økonomi"));
OOP > Arv >Eksempel4