packageTestPerson;
/**
*(1)編寫程序實現如下功能:已知Person類包含三個公共成員變數(姓名、性別、年齡)和一個構造方法,
*Student類是Person類的派生類,包含兩個新的公共成員變數(學號、班號)、兩個公共方法(修改年齡、顯示基本信息)及一個構造方法。
*在測試類Test1中,定義一組學生對象,並初始化他們的基本信息,然後依次輸出。
*/
publicclassTest1{
publicstaticvoidmain(String[]args){
Student[]student=newStudent[3];
student[0]=newStudent("小李","男",12,20181101,01);
student[1]=newStudent("小南","女",13,20001102,01);
student[2]=newStudent("小李","男",12,20181103,01);
for(Studentstu:student){
stu.showInformation();
}
}
}
classPerson{
publicStringname;
publicStringsex;
publicintage;
publicPerson(Stringname,Stringsex,intage){
super();
this.name=name;
this.sex=sex;
this.age=age;
}
}
classStudentextendsPerson{
publiclongstudentId;
publiclongclassId;
publicvoidsetAge(intage){
age=this.age;
}
publicvoidshowInformation(){
System.out.println("我的姓名是"+name+","+"我的性別是"+sex+","+"我的年齡是"+age
+"歲,"+"我的學號是"+studentId+","+"我的班號是"+classId+"班");
}
publicStudent(Stringname,Stringsex,intage,longstudentId,
longclassId){
super(name,sex,age);
this.studentId=studentId;
this.classId=classId;
}
}
不可否認,我現在是有點閑,所以我就幫你寫第一個吧,至於後面兩個,我就不寫了,看看還有沒有其他人有點閑時間,看緣分吧
運行結果:
我的姓名是小李,我的性別是男,我的年齡是12歲,我的學號是20181101,我的班號是1班
我的姓名是小南,我的性別是女,我的年齡是13歲,我的學號是20001102,我的班號是1班
我的姓名是小李,我的性別是男,我的年齡是12歲,我的學號是20181103,我的班號是1班
㈡ JAVA習題 抽象類和介面問題
可以這么理解. 需要注意的是,一個子類只能繼承一個父類,但是卻可以實現多個介面,所以盡量使用介面.也有這么一個說法,繼承會破壞類的封裝性.
㈢ Java練習抽象類
packageJavaBaiThree;
//抽象類Driver
publicabstractclassDriver{
privateStringgender;
privateintage;
publicDriver(Stringgender,intage){
this.setGender(gender);
this.setAge(age);
}
abstractvoiddrives(Vehiclev);
//通過方法在後面調用時進行獲取值
publicStringgetGender(){
returngender;
}
publicvoidsetGender(Stringgender){
this.gender=gender;
}
publicintgetAge(){
returnage;
}
publicvoidsetAge(intage){
this.age=age;
}
}
packageJavaBaiThree;
//抽象類Vehicle
publicabstractclassVehicle{
privateStringtype;
privateintid;
publicVehicle(Stringtype,intid){
this.setType(type);
this.setId(id);
}
abstractvoiddrivedByDriver(Driverwho);
publicStringgetType(){
returntype;
}
publicvoidsetType(Stringtype){
this.type=type;
}
publicintgetId(){
returnid;
}
publicvoidsetId(intid){
this.id=id;
}
}
packageJavaBaiThree;
//抽象類Driver的子類FemaleDriver
{
publicFemaleDriver(Stringgender,intage){
super(gender,age);
}
voiddrives(Vehiclev){
System.out.println("Afemaledrivesa"+v.getType()+",idis"+v.getId()+".");
}
}
packageJavaBaiThree;
//抽象類Driver的子類MaleDriver
{
MaleDriver(Stringgender,intage){
super(gender,age);
}
voiddrives(Vehiclev){
System.out.println("Amandrivesa"+v.getType()+""+v.getId()+".");
}
}
packageJavaBaiThree;
//抽象類Vehicle的子類Bus
publicclassBusextendsVehicle{
Bus(Stringtype,intid){
super(type,id);
}
voiddrivedByDriver(Driverwho){
System.out.println("A"+who.getGender()+""+who.getAge()+"yearsold"+"drivesBus.");
}
}
packageJavaBaiThree;
//抽象類Vehicle的子類Car
publicclassCarextendsVehicle{
Car(Stringtype,intid){
super(type,id);
}
voiddrivedByDriver(Driverwho){
System.out.println("A"+who.getGender()+""+who.getAge()+"yearsold"+"drivesacar.");
}
}
packageJavaBaiThree
publicclassTestDemo{
publicstaticvoidmain(String[]args){
FemaleDriverfd=newFemaleDriver("female",26);
MaleDrivermd=newMaleDriver("male",28);
Busvb=newBus("Bus",001);
Carvc=newCar("Car",002);
fd.drives(vc);
md.drives(vb);
vb.drivedByDriver(md);
vc.drivedByDriver(fd);
}
}
不知道能不能看得懂,我也是剛剛開始學……
㈣ 一道java編程題,請各位大神前來解答
代碼如下:
abstractclassAnimal{
privateStringname;
publicAnimal(Stringname){
this.name=name;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicabstractvoidenjoy();
}
classCatextendsAnimal{
privateStringeyesColor;
publicCat(Stringname){
super(name);
}
publicStringgetEyesColor(){
returneyesColor;
}
publicvoidsetEyesColor(StringeyesColor){
this.eyesColor=eyesColor;
}
@Override
publicvoidenjoy(){
System.out.println("小貓"+getName()+"高興的喵喵叫。");
}
}
classDogextendsAnimal{
privateStringfurColor;
publicDog(Stringname){
super(name);
}
publicStringgetFurColor(){
returnfurColor;
}
publicvoidsetFurColor(StringfurColor){
this.furColor=furColor;
}
@Override
publicvoidenjoy(){
System.out.println("狗狗"+getName()+"高興的搖起了尾巴。");
}
}
classLady{
privateStringname;
privateAnimalpet;
publicLady(Stringname,Animalpet){
this.name=name;
this.pet=pet;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicAnimalgetPet(){
returnpet;
}
publicvoidsetPet(Animalpet){
this.pet=pet;
}
publicvoidmyPetEnjoy(){
pet.enjoy();
}
}
publicclassApp{
publicstaticvoidmain(String[]args){
Catcat=newCat("Jerry");
cat.setEyesColor("藍色");
Ladylady1=newLady("張女士",cat);
lady1.myPetEnjoy();
Dogdog=newDog("旺財");
dog.setFurColor("黃色");
Ladylady2=newLady("王女士",dog);
lady2.myPetEnjoy();
}
}
㈤ Java中關於抽象類和介面的說法,多選題
答案:ABCF
Java 抽象類
在面向對象的概念中,所有的對象都是通過類來描繪的,但是反過來,並不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。
抽象類除了不能實例化對象之外,類的其它功能依然存在,成員變數、成員方法和構造方法的訪問方式和普通類一樣。
由於抽象類不能實例化對象,所以抽象類必須被繼承,才能被使用。也是因為這個原因,通常在設計階段決定要不要設計抽象類。
父類包含了子類集合的常見的方法,但是由於父類本身是抽象的,所以不能使用這些方法。
在Java中抽象類表示的是一種繼承關系,一個類只能繼承一個抽象類,而一個類卻可以實現多個介面。
Java 介面
介面(英文:Interface),在JAVA編程語言中是一個抽象類型,是抽象方法的集合,介面通常以interface來聲明。一個類通過繼承介面的方式,從而來繼承介面的抽象方法。
介面並不是類,編寫介面的方式和類很相似,但是它們屬於不同的概念。類描述對象的屬性和方法。介面則包含類要實現的方法。
除非實現介面的類是抽象類,否則該類要定義介面中的所有方法。
介面無法被實例化,但是可以被實現。一個實現介面的類,必須實現介面內所描述的所有方法,否則就必須聲明為抽象類。另外,在 Java 中,介面類型可用來聲明一個變數,他們可以成為一個空指針,或是被綁定在一個以此介面實現的對象。
介面與類相似點:
一個介面可以有多個方法。
介面文件保存在 .java 結尾的文件中,文件名使用介面名。
介面的位元組碼文件保存在 .class 結尾的文件中。
介面相應的位元組碼文件必須在與包名稱相匹配的目錄結構中。
介面與類的區別:
介面不能用於實例化對象。
介面沒有構造方法。
介面中所有的方法必須是抽象方法。
介面不能包含成員變數,除了 static 和 final 變數。
介面不是被類繼承了,而是要被類實現。
介面支持多繼承。
介面特性
介面中每一個方法也是隱式抽象的,介面中的方法會被隱式的指定為public abstract(只能是 public abstract,其他修飾符都會報錯)。
介面中可以含有變數,但是介面中的變數會被隱式的指定為public static final變數(並且只能是 public,用 private 修飾會報編譯錯誤)。
介面中的方法是不能在介面中實現的,只能由實現介面的類來實現介面中的方法。
抽象類和介面的區別
1. 抽象類中的方法可以有方法體,就是能實現方法的具體功能,但是介面中的方法不行。
2. 抽象類中的成員變數可以是各種類型的,而介面中的成員變數只能是public static final類型的。
3. 介面中不能含有靜態代碼塊以及靜態方法(用 static 修飾的方法),而抽象類是可以有靜態代碼塊和靜態方法。
4. 一個類只能繼承一個抽象類,而一個類卻可以實現多個介面。
㈥ java簡單習題抽象
publicclassAnimalTest{
publicstaticvoidmain(String[]args){
Animalp=newParrot();
p.name="鸚鵡";
zooz=newzoo();
System.out.println(z.free(p));
Animalt=newTortoise();
t.name="烏龜";
System.out.println(z.free(t));
}
}
classAnimal{
publicStringname;
publicStringmove(){
return"行走";
}
}
classParrotextendsAnimal{
publicStringmove(){
return"飛行";
}
}
classTortoiseextendsAnimal{
publicStringmove(){
return"爬行";
}
}
classzoo{
publicStringfree(Animala){
returna.name+"正在"+a.move();
}
}