It's not a secret anymore!
The moose likes Programmer Certification (SCJP/OCPJP) and the fly likes Abstract method query Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Head First Android this week in the Android forum!
JavaRanch » Java Forums » Certification » Programmer Certification (SCJP/OCPJP)
Bookmark "Abstract method query" Watch "Abstract method query" New topic
Author

Abstract method query

Rahul Saple
Ranch Hand

Joined: Aug 02, 2006
Posts: 46
Can we override an abstract method with default accessibility being declared in a public(abstract) class and in a package different than that of its subclass?

Here's the code

A compile-time error is what I get..
Sub.java:2: Sub is not abstract and does not override abstract method print() in A.Abstract

Stephan van Hulst
Bartender

Joined: Sep 20, 2010
Posts: 3893
    
  18

No. The subclass has to be in the same package, or the abstract method has to be declared protected.


The mind is a strange and wonderful thing. I'm not sure that it will ever be able to figure itself out, everything else, maybe. From the atom to the universe, everything, except itself.
Rahul Saple
Ranch Hand

Joined: Aug 02, 2006
Posts: 46
I thought so too. But then I thought there must be a way out since the compiler doesn't flag such a use. Thanks anyway.
Stephan van Hulst
Bartender

Joined: Sep 20, 2010
Posts: 3893
    
  18

What would the compiler flag? It's perfectly valid to declare a package private abstract method in a public abstract class. In this case, implementations are restricted to the package, but the interface that the abstract class defines is still usable outside the package.

[edit]

Oh, I suppose you're referring to the confusing error message the compiler gives you now. Yeah, but it probably would have been marginally useful for the designers to make the compiler print a special error message just for this specific case.
Rahul Saple
Ranch Hand

Joined: Aug 02, 2006
Posts: 46
Well, I certainly did pounce on the poor compiler to help me out on this one(not the first time). Guess I am the dumb one here.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: Abstract method query
 
It's not a secret anymore!