On 1/5/2013 5:53 PM, Joel wrote:
Hi Sang,
In studying the Example 3 (Polymorphic behavior via Java Interface) in
the Polymorphism lab of Javase, there is an interface class defined as
follows:
public interface BookInterface extends ProductInterface {
public String getPublisher();
public void setPublisher(String publisher);
public int getYearPublished();
public void setYearPublished(int yearPublished);
}
Why does this class need to extend ProductInterface? I ask because
Product class already implements ProductInterface. So when you define
the Book class as:
public class Book extends Product*implements BookInterface*{ ...}
...it seems as though the Book class inherits ProductInterface twice:
once from extending Product and again in the BookInterface implementation.
Your observation indeed is correct.
_I modified the BookInterface definition by removing extends
ProductInterfaceand the code runs fine without error.
_So my questions are:
Is there a reason you extend BookInterface with ProductInterface? Or
is this simply superfluous coding?
The latter. :-) Apparently the only reason it also extends Product class is
to use a constructor method of the Product class but it does not have
to as you pointed out. (The sample code actually uses this
I also found there is some discrenpancy between the document and
the code sample, which I am in the process of cleaning up.
And why does the compiler not complain in Book class that it inherits
ProductInterface interface twice: once from Product and again from
BookInterface? Is it Ok to inherit the same abstract methods twice
like this?
Correct. This is a not compiler error.
-Sang
Joel
--
You received this message because you are subscribed to the Google
Groups "JPassion.com: Java Programming" group.
To unsubscribe from this group, send email to
[email protected].
Visit this group at http://groups.google.com/group/jpassion_java?hl=en-US.
--
-------------------------------------------------------------------
Sang Shin, [email protected]
http://www.linkedin.com/in/javapassion (Linkedin)
http://twitter.com/javapassion (Tweeter)
Life is worth living... with Passion!
Free Webinars: "Ruby on Rails", "MySQL", "Java EE 6", "Java Performance"
http://javapassion.com/webinars
----------------------------------------------------------------------
--
You received this message because you are subscribed to the Google Groups
"JPassion.com: Java Programming" group.
To unsubscribe from this group, send email to
[email protected].
Visit this group at http://groups.google.com/group/jpassion_java?hl=en-US.