首页技术文章正文

Java抽象类介绍【黑马程序员】

更新时间:2021年03月18日 08时58分14秒 来源:黑马程序员

在面向对象的概念中,所有的对象全是通过类来描绘的,但是相反,并不是所有的类全是用来描绘对象的,假如一个类中没有包括足够的信息来描绘一个具体的对象,这样的类就是抽象类。抽象类除了不可以实例化对象之外,类的其它功能仍然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。


1565536916923_java5.jpg

·由于抽象类不可以实例化对象,因此抽象类必须被继承,才能被应用。也由于这一缘故,一般在设计阶段决定需不需要设计抽象类。

·父类包括了子类集合的常见的方法,但是由于父类本身是抽象的,因此不可以应用这些方法。

·在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类却可以实现多个接口。

·抽象类和抽象方法都应用 abstract 关键字进行声明。假如一个类中包括抽象方法,那么这一类必须声明为抽象类。

·抽象类和普通类较大的区别是,抽象类不可以被实例化,需要继承抽象类才能实例化其子类。

 

public abstract class AbstractClassExample {
protected int x;
private int y;
public abstract void func1();
public void func2() {
System.out.println("func2");
}
}

 

public class AbstractExtendClassExample extends AbstractClassExample {
@Override
public void func1() {
System.out.println("func1");
}
}

 

// AbstractClassExample ac1 = new AbstractClassExample(); // 
'AbstractClassExample' is abstract; cannot be instantiated
AbstractClassExample ac2 = new AbstractExtendClassExample();
ac2.func1();

 

抽象类总结

抽象类不能被实例化,如果被实例化,就会报错,编译无法通过。只有抽象类的非抽象子类可以创建对象。

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

抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。

抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类。


黑马中级程序员课程

推荐了解热门学科

java培训Python人工智能Web前端培训PHP培训
区块链培训影视制作培训C++培训产品经理培训
UI设计培训新媒体培训产品经理培训Linux运维
大数据培训智能机器人软件开发
分享到:
在线咨询 我要报名
和我们在线交谈!