codice:
public class Article {
	protected String nome,marca,prezzo;

	public Article(String nome,String marca,String prezzo)

		{
		this.nome=nome;
		this.marca=marca;
		this.prezzo=prezzo;
		}

public String getNome()	{return this.nome;}
public String getMarca()	{return this.marca;}
public String getPrezzo()	{return this.prezzo;}
}

import java.io.*;
import java.util.*;
public class OpticalDrive extends Accesory {
	private String speedlettura,speedscrittura;

	public OpticalDrive(String nome,String marca,String prezzo,String connection,String versioneCon,String speedlettura,String speedscrittura)

		{
		super( nome, marca, prezzo, connection, versioneCon);
		this.speedlettura=speedlettura;
		this.speedscrittura=speedscrittura;
		}
	public String getSpeedlettura()	{return this.speedlettura;}
	public String getSpeedscrittura()	{return this.speedscrittura;}
	
public OpticalDrive readOp(BufferedReader br)throws Exception

	{
		nome=br.readLine();
		if(nome==null)return null;
		marca=br.readLine();
		prezzo=br.readLine();
		connection=br.readLine();
		versioneCon=br.readLine();
		speedlettura=br.readLine();
		speedscrittura=br.readLine();
		return new OpticalDrive(nome,marca,prezzo,connection,versioneCon,speedlettura,speedscrittura);
		
	}
}

import java.io.*;
public class Accesory extends Article{
	Accesory a;
	protected static String connection, versioneCon;
	

	public Accesory(String nome,String marca,String prezzo,String connection,String versioneCon)

	{
		super(nome,marca,prezzo);
		this.connection=connection;
		this.versioneCon=versioneCon;
		}
	public String getConnection()	{return this.connection;}
	public String getVersioneCon()	{return this.versioneCon;}

public Accesory readAcc(BufferedReader br)throws Exception
{
	String nome,marca,prezzo,connection,versioneCon;
	nome=br.readLine();
	if(nome==null)return null;
	marca=br.readLine();
	prezzo=br.readLine();
	connection=br.readLine();
	versioneCon=br.readLine();
	return new Accesory( nome,marca,prezzo,connection,versioneCon);
	
}
}

import java.io.*;
import java.util.*;

public class Computer extends Article {
	protected   String tipocpu,dimensioneram,dimensionedisco,scheda;
	public Computer(String nome,String marca,String prezzo,String tipocpu,String dimensioneram,String dimensionedisco,String scheda)
		{
		super(nome,marca,prezzo);
		this.tipocpu=tipocpu;
		this.dimensioneram=dimensioneram;
		this.dimensionedisco=dimensionedisco;
		this.scheda=scheda;
		}
	public String getTipocpu()			{return this.tipocpu;}
	public String getDimensioneram()	{return this.dimensioneram;}
	public String getDimensionedisco()	{return this.dimensionedisco;}
	public String getScheda()			{return this.scheda;}
	
	
	public  Computer read(BufferedReader br)throws Exception
{
	String nome,marca,tipocpu,dimensioneram,dimensionedisco,scheda;
	nome=br.readLine();
	if(nome==null)return null;
	marca=br.readLine();
	prezzo=br.readLine();
	tipocpu=br.readLine();
	dimensioneram=br.readLine();
	dimensionedisco=br.readLine();
	scheda=br.readLine();
	return new Computer(nome,marca,prezzo,tipocpu,dimensioneram,dimensionedisco,scheda);
}
}