04. december 2002 - 16:55Der er
15 kommentarer og 1 løsning
arv og overskriv
Vi har et problem angående nedarvning. Vi har nedarvet en metode der indholder et Array, men det er ikke lykkes at overskrive indholdet i arrayet i subklassen hvordan gør man det?
vi har indsat programmet nedenfor
//***************************************************************************************************** // VarTekstTest.java Forfatter: Steen og Bagger //*****************************************************************************************************
import cs1.*; import java.util.Random;
public class Sodo { public static void main(String [] args) { NejTekster mulighed = new NejTekster();//kalder Vartekst klassen mulighed.randomTekst();//kalder randomTekst metoden
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Jeg har prøvet at rette jeres kode lidt til, som jeg *tror* I vil have det til at virke.
Her er resulatet:
import java.util.Random;
public class Sodo { public static void main(String [] args) { NejTekster mulighed = new NejTekster();//kalder Vartekst klassen mulighed.randomTekst();//kalder randomTekst metoden }//slutter metode }//slutter klasse
class JaTekster { private final static int LIMIT = 5; protected String[] tekst = new String[LIMIT];//opretter array protected void initTekst() { tekst[0] = "hej"; tekst[1] = "ej"; tekst[2] = "hj"; tekst[3] = "he"; tekst[4] = "h"; }
public void randomTekst() { initTekst(); Random generator = new Random();//kalder Random klassen int tilfaeldig = generator.nextInt(LIMIT);//sætter et random tal System.out.println("\nDen valgte brugerdialog: "+tekst[tilfaeldig]+"\n");//udskriver tilfældig sætning i arrayet }//slutter metode }//slutter klasse
Det er helt almindelig teknik: - I har en super-klasse med en metode som gør noget - I har en sub-klasse med samme metode som gør noget andet
Det kunne også gøres på mange andre måder.
Men jeres oprindelige kode, som havde 2 forskellige stykker kode der skulle udføres alt efter hvilken klasse det var, gjorde at jeg valgte denne løsning.
Nej, det er ikke sort - og du har stort set løst vores problemstilling - vi skulle lige ændre lidt og tilføj den egentlige problemstilling, men ellers mange tak.
Mit spørgsmål går dog stadig lidt på den inetTekst() metode du bruger... Kunne du evt. forklare lidt mere generelt om den - så jeg evt. kan benytte mig af init en anden gang...Altså hvad gør den helt præcist osv.
JaTekster og NejTekster har hver sin, fordi de skal sætte forskellige tekster.
Pointen er den at selvom initTekst bliver i klassen JaTekster, så kan den godt finde ud af at bruge NejTekster initTekst, når objektet er af typen NejTekster.
Det er fordi alle metoder i Java per definition er virtuelle.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.