简答题——接口和抽象类以及static、final修饰符

1.static 修饰的属性,相较于实例变量,有哪些特别之处(>=3点)

随着类的加载而加载;早于对象的创建,只要权限通过,可以通过;对象static.属性的方式进行调用;存在于方法区的静态域。

被类的所有对象共享,这也是我们判断是否使用静态关键字的条件.

可以通过类名调用,也可以通过对象名调用。

2. static访问特点:

static的访问特点

非静态的成员方法

能访问静态的成员变量

能访问非静态的成员变量

能访问静态的成员方法

能访问非静态的成员方法

静态的成员方法

能访问静态的成员变量

能访问静态的成员方法

总结成一句话就是:

静态成员方法只能访问静态成员

3.final 可以用来修饰哪些结构,分别表示什么意思?

final修饰类:该类不能被继承(不能有子类,但是可以有父类)

final修饰方法:该方法不能被重写

final修饰变量:表明该变量是一个常量,不能再次赋值

4.类的属性赋值的位置有哪些?先后顺序为何?

默认初始化<显示初始化 / 在代码块中赋值<显示初始化 <在代码块中赋值<通过 对象.属性 或 对象.方法 的方式进行赋值

5.abstract 能修饰哪些结构? 修饰以后,有什么特点?

1).abstract 可以修饰类:

(1)被abstract修饰的类称为抽象类:abstract class 类名{}

(2)抽象类编译之后会生成独立的.class文件

(3)抽象类不能单独创建对象(既不能new对象),但可以声明抽象类类型的引用 例如 Animal a

(4)抽象中可以定义成员变量和成员方法

2).abstract可以修饰方法:

(1)被abstract修饰的方法称为抽象方法

(2)抽象方法只有声明部分,没有方法实现部分(连{}都没有),以分号结尾

语法:访问修饰符 abstract 返回值类型 方法名(形参列表);

注意:访问修饰符和abstract没有先后位置

(3)抽象方法只有定义在抽象类中;但是抽象类中既可以定义抽象方法,也可以定义非抽象方法

3).abstract抽象子类:

(1)如果一个类继承抽象类,此类为抽象类的子类

(2)如果子类不想定义为抽象类,必须覆盖父类中所有的抽象类方法,否则子类必须定义抽象类

(3)抽象类类名 引用名=new 子类类名(形参);

4).abstract抽象类强制使用多态。

6.接口是否能继承接口? 抽象类是否能实现(implements)接口? 抽象类是否能继承非抽象的类?

所以接口可以继承接口。抽象类可以实现(implements)接口。抽象类可以继承非抽象的类。

注:抽象类中可以右main方法。

7.抽象类和接口有哪些共同点和区别?

共同点:

1.可以定义抽象方法

2.不能创建本类对象,只能由子类去实例化子类对象

区别:

1.子类要扩展它们时,对抽象类用的是extends关键字,对接口用的是implements关键字

2.抽象类可以去实现接口,接口只能继承接口,不能继承类

3.一个类可以实现多个接口,但只能继承一个抽象类

4.抽象类可以有构造方法,接口中不能有

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值