1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
|
package a.b
package c
import a.b.J
/** Variations of java-access-pos with us in a nested package.
*/
/** Declaring "override" all the time.
*/
class S1 extends J {
override private[b] def packageAbstract() = () // fail
override protected[b] def protectedAbstract() = ()
override def publicAbstract() = ()
override private[b] def packageConcrete() = () // fail
override protected[b] def protectedConcrete() = ()
override def publicConcrete() = ()
}
/** Implementing abstracts.
*/
class S2 extends J {
private[b] def packageAbstract() = () // fail
protected[b] def protectedAbstract() = ()
def publicAbstract() = ()
}
/** Widening access.
*/
class S3 extends J {
protected[b] def packageAbstract() = () // fail
protected[b] def protectedAbstract() = ()
def publicAbstract() = ()
override protected[b] def packageConcrete() = () // fail
override protected[b] def protectedConcrete() = ()
override def publicConcrete() = ()
}
/** More widening.
*/
class S4 extends J {
private[a] def packageAbstract() = () // fail
protected[a] def protectedAbstract() = ()
def publicAbstract() = ()
override private[a] def packageConcrete() = () // fail
override protected[a] def protectedConcrete() = ()
override def publicConcrete() = ()
}
/** Yet more widening.
*/
class S5 extends J {
def packageAbstract() = () // fail
def protectedAbstract() = ()
def publicAbstract() = ()
override def packageConcrete() = () // fail
override def protectedConcrete() = ()
override def publicConcrete() = ()
}
|