Outer Class trong Java

Outer Class là một class nằm ở bên ngoài class có từ khóa public, nhớ rằng các outer class này nó nằm cùng một file java với cùng class có từ khóa public.

Ví dụ về outer class

Để cụ thể hơn các bạn xem ví dụ bên dưới về outer class:

Source code:

package com.itphutran.outerclass;

public class Student {
	private int id;
	private int age;
	private String fullName;
	
}

class Address {
	private int id;
	private String name;
	
	
}

Lưu ý rằng, với outer class bạn chỉ có thể có một phạm vi truy cập duy nhất mặc định đó chính là default.

Từ đó ta có thể biết được rằng với outer class chỉ được kế  thừa các class trong cùng package.

Nếu chúng ta cố tình kế thừa thì nó sẽ xảy ra lỗi khi biên dịch:

Vậy nếu trong cùng một package thì các bạn có thể kế thừa một cách bình thường.

Hay các outer class có thể kế thừa với nhau trong cùng một file java :

Về cách khai báo để sử dụng thì các bạn hoàn toàn sử dụng như cách khai báo các class bình thường. Bằng việc tạo ra object rồi gọi và sử dụng các phương thức, thuộc tính.

package com.itphutran.outerclass;

public class Student {
	private int id;
	private int age;
	private String fullName;
	
	public static void main(String[] args) {
		Address address = new Address();
		address.getFullAddress();
	}
}

class Address {
	private int id;
	private String name;
	
	
	public void getFullAddress() {
		System.out.println("This is method get full address...");
	}
}

class Information extends Address{
		
}

Sử dụng outer class trong phương thức:

class Information extends Address{
		
	public void info() {
		Address address = new Address();
		address.getFullAddress();
	}
}

Làm thế nào để có thể sử dụng các thuộc tính hoặc phương thức của một outer class từ một class khác ngoài package.

Giải pháp kế thừa outer class từ một class khác package

Để một class khác package truy cập vào các phương thức, thuộc tính thì không có cách nào khác class cùng package với outer class kế thừa outer class. Class đang kế thừa có phạm vi truy cập là public. Từ đó class bên ngoài package extends từ class này và có thể truy cập được các phương thức, thuộc tính của outer class.

package pk2;

import com.itphutran.outerclass.Student;

public class Test extends Student{
	
	public static void main(String[] args) {
		Test test = new Test();
		test.getFullAddress();
	}
}
package com.itphutran.outerclass;

public class Student extends Address{
	private int id;
	private int age;
	private String fullName;
	
}

class Address {
	//private int id;
	private String name;
	
	
	 protected void getFullAddress() {
		System.out.println("This is method get full address...");
	}
}

class Information extends Address{
		
	public void info() {
		Address address = new Address();
		address.getFullAddress();
	}
}

 

 

0 0 đánh giá
Đánh giá bài viết
Theo dõi
Thông báo của
guest
0 Góp ý
Phản hồi nội tuyến
Xem tất cả bình luận
x