「java抽象试题」在java中关于抽象类的描述正确的是

博主:adminadmin 2022-12-07 12:24:10 67

今天给各位分享java抽象试题的知识,其中也会对在java中关于抽象类的描述正确的是进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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题目,类B是一个抽象类,类C是类B的非抽象子类,下列创建对象x1的语句中正确的是?

B和C都正确。

非抽象类C当然可以实例自己的对象,故C正确。

抽象父类B的对象x1也可以由非抽象的子类C来实例化,故B也正确。这种用法通常用于实现动态多态。

java中关于抽象方法的题目怎么做,求解答

你好,各类代码如下,希望可以帮到你:

动物类:

public abstract class Animal {

public abstract String say();

}

Action接口

public interface Action {

public void ability();

}

猫类(cat)

public class Cat extends Animal implements Action {

@Override

public void ability() {

System.out.println("I have the ability of cat ");

}

@Override

public String say() {

return "I'm a cat";

}

}

狗类(dog)

public class Dog extends Animal implements Action {

@Override

public void ability() {

System.out.println("I have the ability of dog ");

}

@Override

public String say() {

return "I'm a dog";

}

}

Java练习抽象类

package JavaBaiduThree;

//抽象类Driver

public abstract class Driver {

private String gender;

private int age;

public Driver(String gender,int age){

this.setGender(gender);

this.setAge(age);

}

abstract void drives(Vehicle v);

//通过方法在后面调用时进行获取值

public String getGender() {

return gender;

}

public void setGender(String gender) {

this.gender = gender;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

package JavaBaiduThree;

//抽象类Vehicle

public abstract class Vehicle {

private String type;

private int id;

public Vehicle(String type,int id){

this.setType(type);

this.setId(id);

}

abstract void drivedByDriver(Driver who);

public String getType() {

return type;

}

public void setType(String type) {

this.type = type;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

}

package JavaBaiduThree;

//抽象类Driver的子类FemaleDriver

public class FemaleDriver extends Driver{

public FemaleDriver(String gender,int age){

super(gender, age);

}

void drives(Vehicle v){

System.out.println("A female drives a "+v.getType()+",id is "+v.getId()+".");

}

}

package JavaBaiduThree;

//抽象类Driver的子类MaleDriver

public class MaleDriver extends Driver{

MaleDriver(String gender,int age){

super(gender,age);

}

void drives(Vehicle v){

System.out.println("A man drives a "+v.getType()+" "+v.getId()+".");

}

}

package JavaBaiduThree;

//抽象类Vehicle的子类Bus

public class Bus extends Vehicle{

Bus(String type,int id){

super(type,id);

}

void drivedByDriver(Driver who){

System.out.println("A "+who.getGender()+" "+who.getAge()+" years old "+" drives Bus.");

}

}

package JavaBaiduThree;

//抽象类Vehicle的子类Car

public class Car extends Vehicle{

Car(String type,int id){

super(type,id);

}

void drivedByDriver(Driver who){

System.out.println("A "+who.getGender()+" "+who.getAge()+" years old "+" drives a car.");

}

}

package JavaBaiduThree

public class TestDemo {

public static void main(String[] args){

FemaleDriver fd=new FemaleDriver("female",26);

MaleDriver md=new MaleDriver("male",28);

Bus vb=new Bus("Bus",001);

Car vc=new Car("Car",002);

fd.drives(vc);

md.drives(vb);

vb.drivedByDriver(md);

vc.drivedByDriver(fd);

}

}

不知道能不能看得懂,我也是刚刚开始学……

下列选项中,关于java的抽象方法和抽象类说法错误的是( )。

C。

java中的抽象方法是指的只有定义没有实现的方法。

如接口中定义的方法;如抽象类中用abstract修饰的方法。

new一个实例指向抽象类,这个在JAVA当中叫做多态性。当一个子类的实例指向父抽象类的时候,那么父抽象类所定义的一个没有被实例化的对象就可以使用父抽象类当中所有的被子类实现的抽象方法,但是不可以使用子类新加入的方法。

扩展资料:

在抽象类中定义的方法称为抽象方法,这些方法只有方法头的声明,用一个分号来代替方法体的定义,即只定义成员方法的接口形式,没有具体操作。只有派生类对抽象成员方法的重定义才能真正实现与该派生类相关的操作。

在各子类继承了父类的抽象方法之后,再分别用不同的语句和方法体来重新定义它,形成若干个名字相同、返回值相同、参数列表相同、目的一致但是具体实现有一定差别的方法。

参考资料来源:百度百科-java抽象类

java简单习题抽象

public class AnimalTest {

public static void main(String[] args) {

Animal p = new Parrot();

p.name = "鹦鹉";

zoo z = new zoo();

System.out.println(z.free(p));

Animal t = new Tortoise();

t.name = "乌龟";

System.out.println(z.free(t));

}

}

class Animal{

public String name;

public String move(){

return "行走";

}

}

class Parrot extends Animal{

public String move(){

return "飞行";

}

}

class Tortoise extends Animal{

public String move(){

return "爬行";

}

}

class zoo{

public String free(Animal a){

return a.name + "正在"+a.move();

}

}

关于java抽象试题和在java中关于抽象类的描述正确的是的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-12-07,除非注明,否则均为首码项目网原创文章,转载请注明出处。