首页 > 试题广场 >

以下关于 abstract 关键字的说法,正确的是()

[单选题]

以下关于 abstract 关键字的说法,正确的是()

  • abstract 可以与final 并列修饰同一个类。
  • abstract 类中不可以有private的成员。
  • abstract 类中必须全部是abstract方法。
  • abstract 方法必须在abstract类或接口中。
父类定义的private成员子类是可以继承,但是对子类不可见而已
发表于 2018-03-18 21:13:24 回复(0)
更多回答
1abstract类不能与final,static使用。final修饰方法,子类可以调用,但不能覆盖。
2最好不要有private因为私有和抽象放在一起,子类如果想重写父类的私有方法根本继承不过来,也就无法重写
3抽象类中可以有非抽象方法
4抽象类中可以都是非抽象的,但是抽象方法一定要在类和接口中
发表于 2017-07-25 21:41:33 回复(12)
含有abstract修饰符的class即为抽象类,abstract 类不能创建的实例对象。含有abstract方法的类必须定义为abstract class,abstract class类中的方法不必是抽象的。abstract class类中定义抽象方法必须在具体(Concrete)子类中实现,所以,不能有抽象构造方法或抽象静态方法。如果的子类没有实现抽象父类中的所有抽象方法,那么子类也必须定义为abstract类型。
发表于 2017-05-04 14:55:13 回复(3)
abstract是需要被继承使用的,所以它不能被final使用,所以A错,也可以有private属性,B错,也可以有普通方法 甚至所有都可以是普通方法,当然这样也就失去了abstract类的意义,C错,interface属于特殊的abstract类,也是abstract类,所以D对
发表于 2017-05-14 01:15:36 回复(3)
我倒是觉得D讲的也存在一点问题 接口中的方法也是abstract的 为什么说abstract方法一定要在abstract类中呢?
发表于 2017-05-12 14:56:22 回复(2)

解析:正确答案是D。A选项,abstract修饰的类不能被实例,需要子类,而final修饰的类表示不能被继承,两者是矛盾的。B,C选项,抽象类中可以有普通方法和私有变量。

发表于 2017-09-03 18:07:38 回复(0)
1abstract类不能与final,static使用。 首先final修饰的类不能被继承,abstract类就是要被继承实现。static修饰的类只能是内部类,抽象类是不能实例化的,即不能被分配内存;而static修饰的方法在类实例化之前就已经别分配了内存,这样一来矛盾就出现了。 final修饰方法,子类可以调用,但不能覆盖。 final修饰的变量不能修改,既是常量。 2最好不要有private因为私有和抽象放在一起,子类如果想重写父类的私有方法根本继承不过来,也就无法重写 。但是抽象类中是可以有私有的成员。 3抽象类中可以有非抽象方法 4抽象类中可以都是非抽象的,但是抽象方法一定要在抽象类和接口中。普通类可以被实例化,而抽象方法本身不能被调用,如果普通类有抽象方法,那么该方法被调用就会出错。
编辑于 2020-07-05 17:30:24 回复(0)
我是瞎子吗!
发表于 2018-10-18 16:33:38 回复(0)
a、abstract要求要继承 , final 修饰不能继承,矛盾报错
b、可以有私有成员,但是不能被子类访问,可以继承到,但是因为访问修饰符不能访问
c、可以有普通方法也可以有抽象方法,也可以全都没有
d、有抽象方法的必须是抽象类或者接口
发表于 2023-08-16 20:55:07 回复(0)
A. abstract类存在的意义就在于被继承并实现其中的抽象方法。而final修饰后,类不能被继承,修饰方法后也不能被重写。 B.abstract也属于一种类,可以有private的成员 C.在abstract类中,可以有抽象方法也可以有非抽象方法,如构造方法 D.abstract类,可以有抽象方法,也可以有非抽象方法。但是抽象方法必须在抽象类或者接口中。
发表于 2022-01-20 11:11:06 回复(0)
D、还能声明在枚举类中
发表于 2021-09-23 20:15:50 回复(0)
abstract类中可以有非抽象的方法
发表于 2020-09-22 22:21:49 回复(0)
D:接口中可以写方法?
发表于 2022-06-11 22:50:20 回复(2)
抽象类首先是类,它具有类的特性,与类不同的是其中可以有抽象方法。
发表于 2023-09-22 06:59:01 回复(0)
1.abstract是抽象类必须被继承实现,而final修饰的类不能被继承
2.不报错,但没必要,子类只能继承protect和public的成员
3.抽象类不一定有抽象方法,有抽象方法的类一定是抽象类 
4.抽象类中可以都是非抽象的,但是抽象方法一定要在类和接口中
发表于 2023-06-12 10:41:18 回复(0)
A.二者不能共同修饰类
B.不报错,但没必要
C.抽象类中不一定有抽象方法,但有抽象方法的必是抽象类
D.枚举类中也可以有abstract方法,每个对象都需实现抽象方法即可,在这里我认为枚举类并不是抽象类,因为枚举类是final的和继承了java.lang.Enum类     在这里引用了这篇文章的观点   Enum(枚举类)_吃鱼的羊的博客-CSDN博客_enum
enum Color{
    RED{
        @Override
        public void getColor() {
            System.out.println("red");
        }
    },
    Blue{
        @Override
        public void getColor() {
            System.out.println("blue");
        }
    },
    Greed{
        @Override
        public void getColor() {
            System.out.println("Greed");   
        }
    };
    public abstract void getColor();
}

发表于 2022-11-01 18:07:06 回复(0)
抽象类可以有privite属性
发表于 2022-09-15 09:27:52 回复(0)
选D。A.final修饰类时表示该类不可被继承,abstract修饰的类属于抽象类,抽象类就是用来被继承的,所以abstract何final修饰的类不能同时出现,A选项错误。B.abstract类中可以有private属性。跟接口不同 abstract类中可以有已经实现的方法,private属性可以通过get和set方法来取值和赋值。B选项错误。C.abstract类种除了抽象方法还可以有普通方法,成员变量。C错误。D.abstract方法必须在abstract累或接口中,✅正确。
发表于 2022-08-31 10:28:20 回复(0)
就内部成员而言,普通类有的,抽象类都有,抽象类有,普通类没有。访问权限,仅围绕抽象关键词思考,可以被重写哦。
发表于 2022-06-01 10:40:51 回复(0)
发表于 2021-07-31 08:17:21 回复(0)
此题D选项错误:abstract方法除了可以出现在abstract类或接口当中,还可以出现在枚举类型当中,且枚举实例必须实现枚举类中的abstract方法。
发表于 2021-05-27 10:57:15 回复(1)