package GoiA;
public class LopA {
public String thuocTinhPublic ="Public A";
private String thuocTinhPrivate = "Private A";
protected String thuocTinhProtected = "Protected A";
public void InThongTin(){
// đây là hàm trong nội bộ lớp A, toàn quyền sử dụng mọi thứ của lớp A.
System.out.println("Thuoc rieng tu: " + this.thuocTinhPrivate);
}
}
////==================================================================
package GoiB;
import GoiA.LopA;
public class LopB extends LopA {
// đây là lớp con của A nên dùng được 2 thuộc tính
public void Ham01(){
System.out.println("Thuoc tinh Public trong lop B: " + this.thuocTinhPublic);
this.thuocTinhPublic = "Public B2";
this.thuocTinhProtected = "protected B2";
System.out.println("KQ Gán giá trị nội bộ lớp B: " + this.thuocTinhPublic);
System.out.println("KQ Gán giá trị nội bộ lớp B:: " + this.thuocTinhPublic);
}
}
//====================================================================
package GoiB;
import GoiA.LopA;
public class LopC {
// đây là lớp người ngoài nên chỉ đùng được public
public void HamX(){
LopA objLopA = new LopA();
objLopA.thuocTinhPublic = "Goi công khai";
}
}
///===================================================================
import GoiA.LopA;
import GoiB.LopB;
import GoiB.LopC;
public class Main {
public static void main(String[] args) {
// gọi công cộng
LopA objLopA = new LopA();
objLopA.InThongTin();
// gọi LopB để thực thi truy cập protect ở trong hàm 1
LopB objLopB = new LopB();
objLopB.thuocTinhPublic = "Public B";
objLopB.Ham01();
// gọi lớp C để thực thi truy cập public trong hàm x
LopC objLopC = new LopC();
objLopC.HamX();
}
}