public class protected1 {
    
    public static void main(String args[]) {
	
	Data2 a = new Data2();

	a.print_m();
	a.print_n();

	// Can the client main "see" the m field of Data1?
	// Yes, because classes protected1 and main exist 
	// in the same file.
	Data1 b = new Data1();
	System.out.println("b: "+b.m);

    } // method main

} // class extend1


class Data1 {
    protected int m = 1;
    Data1() {}
} // class Data1

class Data2 extends Data1 {
    private int n = 2;
    Data2() {} 

    public void print_m() {
	System.out.println("m: "+m);
    }
    public void print_n() {
	System.out.println("n: "+n);
    }

} // class Data2

