Salut, je comprend pas ce message d'erreur :

Inconsistent accessibility: base class 'Rayan2.DigitalMediaj' is less accessible than class 'Rayan2.Movie'.

Quelqu'un peut il me l'expliquer et m'aider a le résoudre?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Rayan2
{
class Publication
{
private String title;
private int sale;
private float price;
private int participation;

public String Title
{
get { return title; }
set { title = value; }
}

public int Sale
{
get { return sale; }
set { sale = value; }
}

public float Price
{
get { return price; }
set { price = value; }
}

public int Participation
{
get { return participation; }
set
{
participation = sale * price;
Console.WriteLine("price als float: {0}, price als int: {1}", price, (int)price);
}
}

public override string ToString()
{

return String.Format("{0}\n----------------------\nTitel : {1}\nVerkaufszahlen : {2}\nPreis pro Stück ($) : {3}\nBeteiligungssatz : {4} %", Title, Sale, Price, Participation);

}

public virtual float CalculateFee()
{
float calculatefee = (float)(Sale * Price / 100 * Participation);
return calculatefee;
}
}

class Book : Publication
{
private int pages;

public int Pages
{
get { return pages; }
set { pages = value; }
}

public override string ToString()
{
return String.Format("{0}\n----------------------\nTitel : {1}\nVerkaufszahlen : {2}\nPreis pro Stück ($) : {3}\nBeteiligungssatz : {4} %\nPages : {5}", base.Title, base.Sale, base.Price, base.Participation, Pages);
}
}

abstract class DigitalMediaj : Publication
{
private const float literalPropertyFee = 10000;
private int runTime;

public DigitalMediaj(int runTime)
{
this.runTime = runTime;
}

public float LiteralPropertyFee
{
get { return literalPropertyFee; }
}

private int RuntimeMedium
{
get { return runTime; }
set { runTime = value; }
}

public override float CalculateFee()
{
return (base.CalculateFee() + LiteralPropertyFee);
}
}

class Audio : DigitalMediaj
{
public override float CalculateFee()
{
return (base.CalculateFee() + base.LiteralPropertyFee);
}
public override string ToString()
{
return base.ToString() + String.Format("{0}", base.LiteralPropertyFee);
}
static void Main()
{
Publication b = new Book();
Publication m = new Movie();
Publication a = new Audio();
}
}

public class Movie : DigitalMediaj
{
private float _movieRights;

public float MovieRights
{
get { return _movieRights; }
set { _movieRights = value; }
}

public override float CalculateFee()
{
return (base.CalculateFee() + base.LiteralPropertyFee+MovieRights);
}

public override string ToString()
{
return base.ToString() + String.Format("{0}{1}", base.LiteralPropertyFee, MovieRights);
}

}

}


merci