养生 装修 购物 美食 感冒 便秘 营销 加盟 小吃 火锅 管理 创业 搭配 减肥 培训 旅游

java中抽象类常会遇到的问题

时间:2024-09-27 12:10:50

在使用抽象类的时候,有时会被几个问题弄混,下面就重点讲一下这几个问题。

工具/原料

abstract

方法/步骤

1、抽象类的相关概念抽象是不具体,看不明白的意思。在不断的抽取过程中,将共性内容中的方法声明抽取,但是方法是不一样的,没有被抽取(只是抽取了方法的声明),这个时候抽取到的方法并不具体,需要指定abstract关键字进行标识,声明为抽象方法。注意:抽象方法所在的类一定标识为抽象类,也就是说,该类需要被abstract修饰。

2、抽拇峨镅贪象类的特点、抽象方法只能定义在抽象类中,抽象方法和抽象类必须使用abstract关键字进行修饰(关键字abstract可以描述方法和类,不可以描述变量);惺绅寨瞀、抽象方法只定义方法的声明,并不定义方法的实现;、抽象类不可以被创建对象(即抽象类不能被实例化);、只有通过子类继承抽象类,并覆盖了抽象类中的所有抽象方法后,该子类才可以被实例化;否则,该子类还是一个抽象类。

3、问题1:抽象类中是否有构造函数?有,用于给子类对象进行初始化。

4、问题2:抽象类中是否可以定义非抽象方法?可以。其实抽象类和一般类没有太大的区别,都是在描述事物,只不过抽象类在描述事物时,有些功能不具体。所以抽象类和一般类在定义上,都是需要定义属性和行为的。只不过,比一般类多了一个抽象函数,而且比一般类少了一个创建对象的部分。

5、问题3:抽象关键字abstract和哪些关键字不共存?final、private、static

6、问题4:抽象类中可不可以不定义抽象方法?可以,抽象方法的目的仅仅是为了不让该类创建对象。

7、注意:原理要骈禄笫杳解:抽象类其实是可以实例化的,但是他的实例化方式不是通过new方式来创建对象,而是通过父类的引 用来指向子类的实例来间接哪纳紧萄地实现父类的实例化(因为子类要实例化前,一定会先实例化他的父类。这样创建了继承抽象类的子类的对象,也就把其父类(抽象类) 给实例化了).但是:接口是不能被实例化的(接口压根就没有构造函数),与上面的原理相似同样接口类型的引用可以指向其子类的对象。例如:抽象类A子类B二者关系publicabstractclassA{}publicclassBextendsA{}使用:Ab=newB();

© 一点知识