首页 > 试题广场 >

关于抽象类和接口叙述正确的是? ( )

[单选题]

关于抽象类和接口叙述正确的是? ( )


  • 抽象类和接口都能实例化的
  • 抽象类不能实现接口
  • 抽象类方法的访问权限默认都是public
  • 接口方法的访问权限默认都是public

抽象类

特点:
1.抽象类中可以构造方法
2.抽象类中可以存在普通属性,方法,静态属性和方法。
3.抽象类中可以存在抽象方法。
4.如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法。
5.抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。
6,抽象类不能被实例化,抽象类和抽象方法必须被abstract修饰

关键字使用注意:
抽象类中的抽象方法(其前有abstract修饰)不能用private、static、synchronized、native访问修饰符修饰。

接口

1.在接口中只有方法的声明,没有方法体。
2.在接口中只有常量,因为定义的变量,在编译的时候都会默认加上public static final
3.在接口中的方法,永远都被public来修饰
4.接口中没有构造方法,也不能实例化接口的对象。(所以接口不能继承类)
5.接口可以实现多继承
6.接口中定义的方法都需要有实现类来实现,如果实现类不能实现接口中的所有方法则实现类定义为抽象类。
7,接口可以继承接口,用extends

发表于 2017-07-05 16:15:09 回复(15)
1、抽象类和方法都不能被实例化
2、抽象类可以实现接口
3、抽象类方法默认访问权限都是default
4、接口就是访问的,默认访问权限都是public
发表于 2017-09-26 17:44:42 回复(3)
这题出的不严谨:
抽象类在jdk1.8之前,抽象类的方法默认访问权限为protected,jdk1.8时变成了是default
接口中的方法,在jdk1.8之前是public ,在jdk1.8的时候,也可以是default,到了jdk1.9时也可以是private
发表于 2019-05-11 19:56:00 回复(0)
1.抽象类 不能被实例化 ( 因为不具体,实例化没作用 ), 注意 接口不是类, 不能实例化[ new] ,只能 new 它的  实现类
2.抽象类可以实现接口
3.抽象类是用abstract修饰的
4. 接口 默认访问权限为 public,而且只能使用  public
发表于 2017-05-26 14:39:37 回复(4)
自己总结的,有遗漏请私我指正,不知道为什么网上都说接口没有Main方法,然而我用IDEA和eclipse是可以的,不知道是不是我理解错了。

jdk1.8之前

接口

1.多实现

2.变量类型默认且只能为为public static final

3.函数类型默认且只能为public,只能有public类型的静态成员函数

4.非静态成员函数没有方法体,静态成员函数有方法体

5.子类必须实现所有接口函数

6.可以有main方法;可以new一个接口,需要在方法体中实现所有接口函数

7.没有构造器

 

抽象类

1.单继承

2.变量类型不限(静态变量+非静态变量)

3.函数类型不限(静态函数+非静态函数)

4.非静态函数包含没有方法体的抽象函数. 有方法体的普通函数

5.子类可以不覆写父类的抽象方法,但子类也要申明为抽象类;子类可以选择覆写父类的非抽象方法

6.可以有main方法;不可以new一个抽象类

7.可以有构造器

 

Jdk1.8

接口中可以有default类型的方法,实现类可以选择实现该方法

意义:默认方法的主要优势是提供一种拓展接口的方法,而不破坏现有代码。另一个优势为该方法是可选的,子类可以根据不同的需求Override默认实现。

发表于 2017-09-07 13:37:07 回复(0)

1.private关键字
(1)修饰成员:可以修饰成员变量和成员方法
(2)特点:被private修饰后的成员只能在本类中被访问
abstract不能和private一起使用:private修饰后的方法为私有方法,只能在本类中被使用,子类不能继承,而abstract子类必须覆盖实现父类中的抽象方法,相互冲突,不能使用

2.final关键字
(1)final类:final类不能被继承,因此final类的成员方法没有机会被覆盖,默认都是final的。
(2)final方法:如果一个类不允许其子类覆盖某个方法,则可以把这个方法声明为final方法。
(3)final变量(常量):用final修饰的成员变量表示常量,只能被赋值一次,赋值后值无法改变。
abstract不能和final一起使用:final修饰后的方法,锁定方法,防止任何继承类修改它的意义和实现,而abstract子类必须覆盖实现父类中的抽象方法,相互冲突,不能使用

3.static关键字
(1)为特定的数据类型或对象分配单一的存储空间.
(2)实现某个方法或属性与类关联在一起,被static修饰的变量和方法,可以通过类名.变量名或类名.方法名直接引用。
abstract不能和static一起使用:static修饰的是静态方法,可以直接被类调用;而abstract修饰的类中只有方法名,无方法体,不能被直接调用,故abstract不能和static一起使用

发表于 2020-09-09 17:05:27 回复(0)
抽象类中的方法默认权限是default
发表于 2017-08-15 11:17:34 回复(0)
A、抽象类和方法都不能被实例化
B、抽象类可以实现接口
C、抽象类方法默认访问权限都是default
D、接口就是访问的,默认访问权限都是public
发表于 2022-03-06 10:54:01 回复(0)
实例化和实例是有差别的,抽象类和接口都通过实例来实例化,不能直接实例化
发表于 2021-07-19 09:05:53 回复(0)
抽象类关键点:
1.抽象类不能被实例化,方法和类都必须用abstract修饰
2.有一个抽象方法的类就是抽象类
3.不能用private.static,syschoronized,native修饰,简称sspn
接口:
1.接口都是常量,定义的变量,在编译的时候都会默认加上public static final 
2.接口和public分不开
3.接口无构造方法,也无对象
4.接口的方法都必须实现

发表于 2019-05-26 11:17:30 回复(0)
抽象类default
接口public
发表于 2018-12-27 21:13:03 回复(0)
接口方法默认为public,抽象类方法默认为protected
发表于 2017-05-27 10:50:54 回复(3)

关于抽象类

JDK 1.8以前,抽象类的方法默认访问权限为protected

JDK 1.8时,抽象类的方法默认访问权限变为default

关于接口

JDK 1.8以前,接口中的方法必须是public的

JDK 1.8时,接口中的方法可以是public的,也可以是default的

JDK 1.9时,接口中的方法可以是private的

发表于 2019-09-15 10:50:55 回复(0)
接口方法默认为public,抽象类方法默认为default
发表于 2018-01-25 10:46:21 回复(0)
接口 默认访问权限为  public,而且只能使用   public
发表于 2017-05-27 22:52:38 回复(0)
c 抽象类可以有普通方法
发表于 2023-11-29 00:19:35 回复(0)
抽象类可以实现接口
发表于 2023-11-14 14:13:36 回复(0)
转:
如果一个类中有一个抽象方法,那么当前类一定是抽象类;抽象类中不一定有抽象方法。
抽象类中的抽象方法,需要有子类实现,如果子类不实现,则子类也需要定义为抽象的。
发表于 2023-05-09 14:38:48 回复(0)
接口可以被抽象类实现
发表于 2022-10-29 08:24:40 回复(0)
抽象类方法默认权限是default
发表于 2022-10-17 09:04:50 回复(1)