Oxford o=new Oxford(); //implicitly create one book object
Mc m=new Mc(); //implicitly create anoter book object
Book b=new Book(); //explicitly creating book object
Если вы посмотрите внимательно, вы увидите, что в памяти присутствуют 3 объекта Книги (1 вы явно создали, остальные 2 автоматически создаются в соответствии с наследованием), поэтому установите
o.price(300); //setting the property of first implicit book object
m.price(400); // setting the property of second implicit book object
не повлияет на созданный вами явный объект.
Таким образом, чтобы получить желаемый результат, лучше использовать композицию, а не наследование.Честно говоря, это не идеальная проблема, чтобы использовать наследование здесь, чтобы получить желаемый результат, вы можете просто использовать один класс
class Book {
int op,mp;
String name,auther;
void Setdata(String n,String au)
{
name=n;
auther=au;
}
void Display()
{
System.out.println("Name:"+name);
System.out.println("Auther:"+auther);
System.out.println("Ocford price: "+op);
System.out.println("MC price: "+mp);
}
void setMp(int p)
{
mp=p;
}
void setOp(int p)
{
op=p;
}
}
public class Sai
{
public static void main(String args[])
{
Book b=new Book();
b.Setdata("Java","Robert");
b.setOp(300);
b.setMp(400);
b.Display();
}
}