java中什么叫抽象类(在JAVA中什么是抽象类,它有什么特点)
各位老铁们好,相信很多人对java中什么叫抽象类都不是特别的了解,因此呢,今天就来为大家分享下关于java中什么叫抽象类以及在JAVA中什么是抽象类,它有什么特点的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!
java中抽象类的作用是什么
通过继承它实现多态,后期绑定,可以为将来要实现的东西做好接口,实现重用性,
例如:
abstract class A{
public abstract void doSomething();
}
class B extends A{
public void doSomething(){
System.out.println("do B");
}
}
class C extends A{
public void doSomething(){
System.out.println("do C");
}
}
public class Test{
public static void main(Stringp[] args){
A a1= new B();
A a2= new C();
B b= new B();
C c= new C();
doSomething(a1);//这里
doSomething(a2);//这里
doSomething(b);//这里,如果下面的方法不是用抽象类作参数,比如用C c做参数,这里会有什么问题?
doSomething(c);//这里
}
public static void doSomething(A a){//这里,用抽象类,为什么,自己思考
a.doSomething();
}
}
//这个例子只是抽象类的最基本的设计模式,和接口差不多
什么是抽象类抽象类有什么作用
抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
作用:通常在编程语句中用 abstract修饰的类是抽象类。在C++中,含有纯虚拟函数的类称为抽象类,它不能生成对象;在java中,含有抽象方法的类称为抽象类,同样不能生成对象。
抽象类里面可以有非抽象方法但接口里只能有抽象方法声明方法的存在而不去实现它的类被叫做抽像类(abstract class),它用于要创建一个体现某些基本行为的类,并为该类声明方法,但不能在该类中实现该类的情况。
不能创建abstract类的实例。然而可以创建一个变量,其类型是一个抽像类,并让它指向具体子类的一个实例。不能有抽像构造函数或抽像静态方法。Abstract类的子类为它们父类中的所有抽像方法提供实现,否则它们也是抽像类为。
扩展资料:
在使用抽象类时需要注意几点:
1、抽象类不能被实例化,实例化的工作应该交由它的子类来完成,它只需要有一个引用即可。
2、抽象方法必须由子类来进行重写。
3、只要包含一个抽象方法的抽象类,该方法必须要定义成抽象类,不管是否还包含有其他方法。
4、抽象类中可以包含具体的方法,当然也可以不包含抽象方法。
5、子类中的抽象方法不能与父类的抽象方法同名。
6、abstract不能与final并列修饰同一个类。
7、abstract不能与private、static、final或native并列修饰同一个方法。
参考资料来源:百度百科-抽象类
在JAVA中什么是抽象类,它有什么特点
有abstract关键字修饰的类为抽象类
格式:
abstract class类名{}
特点:
1.抽象类不一定有抽象方法,有抽象方法的类一定是抽象类
2.抽象类不能实例化
3.那么,抽象类如何实例化呢?
按照多态的方式,由具体的子类实例化。其实这也是多态的一种,抽象类多态。
抽象类的子类:
1.要么是抽象类
2.要么重写抽象类中的所有抽象方法
Java抽象类是什么概念
JAVA的抽象类其实和她的普通类在表示实现概念的东西没多大区别,不要因她带有抽象这个形容词就觉得比她的普通类理解起来复杂.
个人的理解是
所谓的抽象类呢,就是带有抽象方法的类.
所谓的抽象方法就像是一种写代码的规范.
抽象方法没有方法体
抽象方法可以有参数列表
抽象方法用abstract修饰
抽象方法的访问修饰分别为 public、protected、default(缺省不用写)
加深了解抽象类
/*理解JAVA抽象类
* 1.抽象类不能被实例化.
* 2.抽象类有构造器,且他的构造在他的子类被实例化时被调用的顺序和普通类调用的顺序是一样的(先父后子).
* 3.抽象类内部的方法可以不是抽象方法,也就是说抽象类内部可以有具体的方法.
* 4.抽象类的抽象方法属于一种不完整的方法,只含有声明和定义,没有方法主体.
* 5.如果抽象的某个子类是普通类(非abstract类型的类),那么该子类必须Override抽象类中所有的抽象方法.
* 6.抽象类的子类也是抽象类的话,那么该子类既可以Override父类中的方法,也可以不Override父类中的方法.
* 7.普通类中不能定义抽象方法.
* 8.static不能修饰抽象方法
*备注:为了方便理解,所谓的普通是指如下形式定义的类
* public class X{}或 class A XX{}
**/
关于java中什么叫抽象类的内容到此结束,希望对大家有所帮助。