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 62 63 64 65 66 67
|
package a.b
/** Declaring "override" all the time.
*/
class S1 extends J {
override private[b] def packageAbstract() = ()
override protected[b] def protectedAbstract() = ()
override def publicAbstract() = ()
override private[b] def packageConcrete() = ()
override protected[b] def protectedConcrete() = ()
override def publicConcrete() = ()
}
/** Implementing abstracts.
*/
class S2 extends J {
private[b] def packageAbstract() = ()
protected[b] def protectedAbstract() = ()
def publicAbstract() = ()
}
/** Widening access.
*/
class S3 extends J {
protected[b] def packageAbstract() = ()
protected[b] def protectedAbstract() = ()
def publicAbstract() = ()
override protected[b] def packageConcrete() = ()
override protected[b] def protectedConcrete() = ()
override def publicConcrete() = ()
}
/** More widening.
*/
class S4 extends J {
private[a] def packageAbstract() = ()
protected[a] def protectedAbstract() = ()
def publicAbstract() = ()
override private[a] def packageConcrete() = ()
override protected[a] def protectedConcrete() = ()
override def publicConcrete() = ()
}
/** Yet more widening.
*/
class S5 extends J {
def packageAbstract() = ()
def protectedAbstract() = ()
def publicAbstract() = ()
override def packageConcrete() = ()
override def protectedConcrete() = ()
override def publicConcrete() = ()
}
/** Constructors.
*/
class S6 extends J(1) {
def packageAbstract() = ()
def protectedAbstract() = ()
def publicAbstract() = ()
}
class S7 extends J(1, 2) {
def packageAbstract() = ()
def protectedAbstract() = ()
def publicAbstract() = ()
}
|