[Bài tập Java] Class học sinh kế thừa Class người

Viết Sang

Moderator
Đề bài: Hãy thiết kế một Class người gồm các thuộc tính sau: : họ tên, ngày sinh, quê quán, địa chỉ (private)... Kèm theo đó hãy viết một Class Học Sinh kế thừa từ Class người như trên và hãy thêm thuộc tính (mã sinh viên, lớp,.....)

VS đang gặp mù mờ ở bài này :(
 

rcp

Administrator
Đề bài: Hãy thiết kế một Class người gồm các thuộc tính sau: : họ tên, ngày sinh, quê quán, địa chỉ (private)... Kèm theo đó hãy viết một Class Học Sinh kế thừa từ Class người như trên và hãy thêm thuộc tính (mã sinh viên, lớp,.....)

VS đang gặp mù mờ ở bài này :(


public class Animal {
private String ten;
private String mau;
public getTen() {
return ten;
}
public setTen(String tenConVat) {
this.ten = tenConVat;
}
public getMau() {
return mau;
}
public setMau(String mauSac) {
this.mau = mauSac;
}
}

public class ConCho extends Animal {
// Constructor
public ConCho(String name, String color) {
//setTen(name);
//setMau(color);
super(name, color);
}
public String sua() {
return "OUAF OUAF";
}
}




PS: VS dựa vào thí dụ trên đây, hãy tạo ra Class người và Class Học Sinh kế thừa từ Class người thử xem

--- rcp ---
 

Viết Sang

Moderator
Sau một thời gian quần quại thì VS đã tìm ra cách giải và hướng đi của bài này goài. Để VS compile thử xem rồi đăng lên lại DNG cho mọi người tham khảo :D
 

Viết Sang

Moderator
VS đã chạy xong bài tập này rồi. Nhưng vẫn sẽ không công khai lên DNG để tránh những sinh viên khác có thể ngồi chơi xơi nước. VS sẽ làm bài theo ví dụ của anh rcp để minh hoạ cho cách làm của VS

Class Animal
{
protected String ten, mau, tiengkeu....;
protected boolean gioitinh;
protected int sochan;
....
public Animal (int sc, String ten)
{
this.sochan=sc;
this.ten=ten;
}
public String toString()
{
return "sc= " + sochan + "ten: " + ten;
}
(Không dùng 2 hàm dựng - Contrustion set and get để giảm thiểu số dòng)

}

Class Dog extends Animal
{
private String loai;
private .....(tuỳ vào thuộc tính)
public Dog (int sc, String t, String l)
{
super(sc,t);
this.l = l;
}

Class Run
{
public static void main (String [] args)
{
Animal convat = new Animal();
Dog a = new Dog (4,"...","...");
convat = a;
System.out.println(convat);
}
}
}
 
Sửa lần cuối:

Viết Sang

Moderator
Hiện tại VS đang mò lại hàm kế thừa nhằm để hiểu rõ hơn về thuật toán này. Nói thì khó hình dung lắm nhưng VS sẽ minh hoạ bằng 1 bài ví dụ sau đây. :)

import java.lang.*;
import java.util.*;
class HinhVuong
{
private float canh;
public static float getFloat (String td)
{
Scanner scan = new Scanner(System.in);
System.out.println(td);
float f = scan.nextFloat();
while (f<=0)
{
System.out.println("Nhap sai yeu cau nhap lai: ");
f = scan.nextFloat();
}
return f;
}
public HinhVuong(){}
public HinhVuong (String td)
{
System.out.println(td);
canh= getFloat("Nhap canh: ");
}
public HinhVuong(float x)
{
canh=x;
}
public float getCanh()
{
return canh;
}
public void setCanh(float tam)
{
canh = tam;
}
public static void main(String[] args)
{
System.out.println("Hello World!");
}

}


-------------------------------------------------------------------

class HinhChuNhat extends HinhVuong
{
private float cd;
public HinhChuNhat()
{
super(HinhVuong.getFloat("Nhap chieu rong: "));
cd = HinhVuong.getFloat("Nhap chieu dai: ");
}
public float getChieuDai()
{
return cd;
}
public void setChieuDai(float t)
{
cd = t;
}
public HinhChuNhat (float crr, float cdd)
{
super(crr);
cd=cdd;
}

public float tinhDT()
{
return cd*getCanh();
}
public float tinhCV()
{
return (cd+getCanh())*2;
}
public String toString()
{
return "Chu vi: = " + tinhCV() + "\nDien tich =: " + tinhDT();
}
public static void main(String[] args)
{
HinhChuNhat a = new HinhChuNhat();
System.out.println(a.cd+"\t"+a.getCanh());
a.tinhDT();
a.tinhCV();
System.out.println(a);
}
}


--------------------------------------------

class HinhTamGiac extends HinhChuNhat
{
private float c;
public HinhTamGiac()
{
super(HinhVuong.getCanh("Nhap canh a: "), HinhChuNhat.cd("Nhap canh b: "));
c=HinhVuong.getFloat("Nhap canh c: ");
}

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

VS muốn lấy Class HinhTamGiac kế thừa từ HinhChuNhat (mà HinhChuNhat kế thừa HinhVuong)... đang gặp rắc rối chổ này :)
 

rcp

Administrator
Hiện tại VS đang mò lại hàm kế thừa nhằm để hiểu rõ hơn về thuật toán này. Nói thì khó hình dung lắm nhưng VS sẽ minh hoạ bằng 1 bài ví dụ sau đây. :)

...

VS muốn lấy Class HinhTamGiac kế thừa từ HinhChuNhat (mà HinhChuNhat kế thừa HinhVuong)... đang gặp rắc rối chổ này :)

Nội cái TamGiac kế thừa từ ChuNhat (mà ChuNhat kế thừa HinhVuong logịc đã khá là rắc rối dzoy..


Phi khi nào có logịc thì vấn đề mới có thể tự giải quyết đc.!.

--- rcp ---
 

rcp

Administrator
Nội cái TamGiac kế thừa từ ChuNhat (mà ChuNhat kế thừa HinhVuong logịc đã khá là rắc rối dzoy..


Phi khi nào có logịc thì vấn đề mới có thể tự giải quyết đc.!.

--- rcp ---


vài ví dụ đơn giản và dễ hiểu như sau đây:


  • Chó (dog) thừa hưởng được đặc tính từ ConVật (animal)
    ;
  • TamGiác, ChữNhật, HìnhVuông thừa hưởng được đặc tính từ Hình và Hình thừa hưởng được đặc tính từ Điểm

--- rcp ---
 

Viết Sang

Moderator
VS cữ nghĩ như thế này mà không biết đúng hay sai.

A <- B <- C

=> Class C sẽ thừa kế được những thuộc tính của Class A không? (Theo tính bắc cầu trung gian)
 

Facebook Comment

Top