Can Java class be multiple-inheritance?

Mình có 1 câu hỏi liên quan đến Inheritance (tính kế thừa trong Java).

Như mọi người biết trong C++, chúng ta thoải mái kế thừa từ nhiều Class, vd:

class Snake : public Animal, public Drawing

Nhưng trong java, liệu ta có thể:

 class Snake extends Animal, Drawing {
    //more code
 }

không? và tại sao :smile:

1 Like

Không, tại vì ông James Gosling không thích :smile:.

2 Likes

Thế lý do tại sao ông ta không thích :wink:

Vì ổng lười :joy:.
Multi inheritance có một vấn đề khó giải quyết là diamond problems. Khi phát triển một ngôn ngữ có hai lựa chọn: Tìm một quy tắc thỏa đáng để giải quyết nó (python) hoặc không hỗ trợ (java) và thay thế nó bằng một khái niệm khác (implements multi interfaces). Cách thứ hai dễ hơn, nên có thể nói ổng… lười :sweat_smile:. Giỡn tí.

5 Likes

Hehe chuẩn luôn :smile:

Không. Vì:

#include<stdio.h>
class BaseA{
	public:
	void run(){
		printf("Base A");
	}
};
class BaseB{
	public:
	void run(){
		printf("Base B");
	}
};
class Derived: public BaseA, public BaseB{
	
};

int main(){
	Derived derived;
	derived.run();
	return 0;
}

Điều gì xảy ra?

Không. Vì sao thì không biết :grin:

Nó sẽ bị bối rối :smiley: đơn kế thừa có 2 mặt nhưng mặt tốt nhiều hơn.

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?