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();
}
}