首页 > 编程知识 正文

java抽象类,java抽象类与接口的区别

时间:2023-12-28 21:11:03 阅读:329135 作者:XAGP

本文目录一览:

JAVA中的抽象类

抽象是java的特性之一,也是处理对象复杂性的一种技术!它是指只关注对象的重要细节,忽略次要细节!

在抽象类中定义的抽象方法,是由子类去实现,而不是去覆盖,因为在父类中没有具体的实现!

举一个例子:

父类:

abstract

class

MyClass

{

abstract

void

display(String

str);

}

子类:

abstract

class

MyChild

extends

MyClass

{

void

display(String

str)

{

.....

}

void

method1()

{

....

}

void

method2()

{

....

}

........

}

这个时候我需要用到display方法,其他的都不用!我们可以这样做:

MyClass

mc

=

new

MyChild();

mc.display();

我们声明的是一个父类类型的引用,只需要记住父类中有这个方法的声明,不用管它子类怎么去实现,而且看都不用看method1,method2...我们可以把精力都集中在父类!如果只有一个单纯的子类,很可能需要去看他的其他方法,尤其是当display与其他方法有关联的时候!有了这样一个抽象的父类,就可以省去这些精力,只需要知道父类有这个方法就行了!(或许这些在小程序中体现得并不很明显)

以上都是个人的理解,有不对的地方,还希望大家指正!

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中的抽象类是什么?

使用了关键词abstract声明的类叫作“抽象类”。

如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

如果一个类里包含了一个或多个抽象方法,类就必须指定成abstract(抽象)。“抽象方法”,属于一种不完整的方法,只含有一个声明,没有方法主体

java抽象类

抽象类是指不允许被实例化的类;抽象方法是没有方法体的方法。

1、抽象类可以不包括抽象方法,它反正不会去实例化,里面的方法是不是抽象的没有本质影响。

2、但是含有抽象方法的类绝不能被实例化,否则执行这个方法的时候,怎么办?

3、如果子类是非抽象的,那么它就必须实现父类中的抽象方法;否则,它继承来的抽象方法仍然没有方法体,也是个抽象方法,此时就与“含有抽象方法的类必须是抽象类”相矛盾了。

比如说,我在纸上画一个饼(抽象类),饼有个“吃到嘴里沾一嘴芝麻”的方法。我可以在饼上画几个点假装是芝麻,这时候“沾芝麻方法”就是个抽象方法,因为它不会真的掉芝麻;我也可以在饼上蘸点儿真芝麻,这时候“沾芝麻方法”就是个有实现的方法。但是用哪个方法都可以,因为没人会去真的吃画的饼吧。

但我要真的去照着这个图烤一个饼(非抽象子类),那这个子类的“吃到嘴里沾一嘴芝麻”的方法就必须有具体的实现。否则烤出来,一吃,没芝麻啊!食客非上消协投诉不可。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。