java抽象类和接口

java抽象类和接口

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

开发工具与关键技术:MyEclipse10

作者:朱海恩

撰写时间: 2019.04.30

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

抽象类总结:

抽象方法只包含一个方法名,而没有方法体,使用abstract修饰

抽象类必须使用abstract修饰符来修饰

抽象方法也必须使用abstract修饰符来修饰

抽象方法不能有方法体

抽象类不能被实例化,无法使用new关键字来调用抽象类的构造器创建抽象类的实例。

抽象类包含成员变量、方法(普通方法和抽象方法都可以)、初始化块、内部类(接口、枚举)

抽象类的构造器不能用于创建实例,主要是用于被其子类调用。

抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类

Abstract static不能同时修饰一个方法

 

  1. 方法只有声明没有实现时,该方法就是抽象方法,需要被abstract修饰。抽象方法必须定义在抽象类中,该类必须也被abstract修饰
  2. 抽象类不可以被实例化。为什么?因为调用抽象方法没意义。
  3. 抽象类必须有其子类覆盖了所有的抽象方法后,该子类才可以实例化,否则,这个子类还是抽象类。
  4. 抽象类中有构造器函数吗?有,用于给子类对象进行初始化。
  5. 抽象类可以不定义抽象方法吗?可以的。但是很少见,目的就是不让该类创建对象。AWT的适配器对象就是这种类。通常这个类中的方法体,但是却没有内容。

Abstract class Demo{

Void show1();  没有方法体

Void show2(){  有方法体,没有内容

}

}

6、抽象关键字不可以和那些关键字共存?Private不行;Static 不行;Final 不行

 

7、抽象类一定是父类吗?是的。因为需要子类覆盖其方法后才可以对子类实例化。

 

8、抽象类和一般类的区别:

相同点:抽象类和一般类都是用来描述事物的,都在内部定了成员。

不同点:(1)一般类有足够的信息描述事物。抽象类描述事物的信息有可能不足

(2)一般类中不能定义抽象类方法,只能定非抽象方法。抽象类中可定义抽象方法,同时也可定义非抽象类

(3)一般类可以被实例化,抽象类不可以被实例化

 

接口特点:

接口是隐式抽象的,当声明一个接口的时候,不必使用abstract关键字

接口中每一个方法也是隐式抽象的,声明时同样不需要abstract关键字

接口中的方法都是公有的

编译时自动为接口里定义的方法添加public abstract修饰符

Java接口里的成员变量只能是public static final共同修饰的,并且必须赋初始值,可以不写public static final,编译的时候会自动添加

 

接口与抽象类的区别:

接口里面不可以实现方法体,抽象类可以实现方法体

接口可以多继承接口,抽象类不可以

接口需要被子类实现,抽象类是被子类继承(单一继承)

接口中只能有公有的方法和属性而且必须赋初始值,抽象类中可以有私有方法和属性

接口中不能存在静态方法,但是属性可以是final,抽象类中方法中可以有静态方法,属性也可以

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论 1

打赏作者

梦珂

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值