⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inheritanceruleofdifferentpackage.java

📁 java程序设计教程的源码
💻 JAVA
字号:
/*【例4-10】  不同包中的子类只能继承父类中的public和protected成员,
 * 且不同包中的非子类不能调用protected成员,只有子类才能调用protected成员。
 */
//程序清单4-10:  InheritanceRuleOfDifferentPackage.java
package e4_10.p1;
import e4_10.p2.*; //引入e4_10.p2包中的所有类
public class InheritanceRuleOfDifferentPackage {
	public static void main(String args[]) {
		B objB = new B();// 实例化类B
		B obj = new B(objB);// 实例化类B
		// *** objB.setA1(8);// 非子类不能调用不同包中的protected方法
		// *** objB.setA2(9);// 非子类不能调用不同包中的protected方法
		objB.setB1(7);// 调用子类B中public方法
		// //类A中的private变量a1不能被子类B继承
		// System.out.println(objB.a1);
		System.out.println(objB.getA1());// 调用父类A中public方法
		// System.out.println(objB.a2);// 不能调用父类A中的默认变量
		System.out.println(objB.getA2());// 调用父类A中public方法
		// 不能直接访问类B中的被private封装的变量
		// System.out.println(objB.b1);
		System.out.println(objB.getB1());// 调用子类B中protected方法
	}
}
class B extends A {// 同一包中的类B继承类A
	// 被继承的有:protected类型的a2、setA1()、setA2()
	// 和public类型的getA1()、getA2()
	// 不能被继承的是:private类型的a1
	private int b1 = 3;
	public B() {  }//无参构造方法
	public B(B objB) {//带一个参数的构造方法
		// 不同包中的子类可调用父类中protected方法
		objB.setA1(5);
		// 不同包中的子类可调用父类中protected方法
		objB.setA2(6);
	}
	protected int getB1() {
		return b1;
	}
	public void setB1(int b1) {
		this.b1 = b1;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -