2013-06-05 58 views
6

Tôi đã đoạn mã sau như một phần của một bài tậpJava Mở rộng lớp chứa phương thức main

class Base { 
    public static void main(String[] args){ 
    System.out.println("Hello World"); 
    } 
} 

public class Factorial extends Base{ 


} 

Nhiệm vụ của tôi được điều hành mã và sau đó giải thích tên output.The của tập tin là Factorial.java. Các mã chạy mà không có vấn đề và Hello World được in mà với tôi là đáng ngạc nhiên. Trước khi gõ mã, tôi đã nghĩ rằng nó sẽ không biên dịch bởi vì các lớp cha mẹ, mà đang được mở rộng nên ở trong một tập tin khác nhưng bây giờ tôi không chắc chắn như vậy. Sẽ đánh giá cao làm rõ như vậy.

+1

Bài tập về nhà? Dù sao, không có gì lạ ở đây. Tại sao bạn lại Nhâm lân? –

+2

Tôi không hiểu, ý của bạn là 'Factorial' nằm trong cùng một tệp với' Base'? Làm thế nào để bạn "chạy mã"? – fge

+1

Vì vậy, lệnh bạn sử dụng để chạy nó là "Java Factorial"? –

Trả lời

12

Java cho phép bạn xác định nhiều lớp trong một .java tập tin duy nhất với điều kiện là bạn có thể có tại hầu hết các một public lớp và nếu bạn sau đó tên của lớp công cộng phải phù hợp với tên của tệp .java. Trong trường hợp của bạn, lớp được khai báo là publicFactorial và do đó tên tệp của bạn phải là Factorial.java.

Các thừa kế đang làm việc như bình thường ở đây và public static void main() được thừa hưởng bởi Factorial đó là lý do mà bạn nhìn thấy đầu ra của bạn trên thực java Factorial.

1

Bạn có thể có nhiều hơn một lớp trong cùng một tệp nhưng chỉ có một lớp công khai vì Base không phải là lớp công khai, nhưng đó không phải là phương pháp được khuyến nghị.

+0

Và tôi có đúng khi giả định rằng kể từ khi mở rộng lớp kế thừa hàm chính từ lớp cha, nó được thực thi ngay sau khi chương trình chạy? – user1107888

+0

@ user1107888 có, vì 'Factorial' mở rộng' Base' nó cũng thừa hưởng phương thức chính. –

+1

@ user1107888 phương thức 'main' là tĩnh; nó được liên kết với chính lớp đó. Vì 'Factorial' kéo dài' Base' và 'Factorial' không định nghĩa' main', 'main'" seen "bởi' Factorial' là từ 'base'. – fge

Các vấn đề liên quan