红星照我去盗墓 发表于 2021-9-14 22:22

历次重开Java学习的记录0x03

0x04 抽象类

在面向对象的概念中,所有的对象都是通过类来描述的,但是反过来,并不是所有的类的都是用来描述
对象的;

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

抽象类除了不能实例化对象之外,类的其他功能都会存在,字段,成员变量,成员方法,和构造方法的访问
方式都是和普通的类一样;

由于抽象类不能实例化对象,所有的抽象类必须要继承给下一个类才能被使用;

也是因为这个原因,通常在设计阶段要决定要不要设计抽象类;

在Java中抽象类表示的是一种继承关系,一个类只能继承一个抽象类,而一个类确可以有多个接口;

接口的概念就是抽象类的抽象,其中只能包含一个成员方法,成员变量都不能有,接口的更多内容不在本次记录之内;

在抽象类中:

1.抽象类不能被实例化;
2.抽象类不一定包含抽象类,但是含有抽象方法的类必须是抽象类;
3.抽象类中抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能;
4.抽象类的子类必须给出抽象类的抽象方法的具体实现,除非该子类也是抽象类.
5.构造方法,类方法(用static修饰的方法)不能声明为抽象方法;

public class person {
    public static void main(String[] args) {
      YiShuPiny1= new YouHua();
      y1.draw();
    }

}
abstract class YiShuPin{
    public abstract voiddraw();

}
class YouHua extends YiShuPin{
    publicvoid draw(){
      System.out.println("Youhua.draw()");
    }
}
抽象类 关键字 abstract
另外,抽象类中定义抽象方法时,只需要定义一下;就像是函数体在下面时,上面只需要声明一下,因此不需要{};

langwushuang 发表于 2021-9-14 22:32

占楼,支持楼主

ykrne 发表于 2021-9-14 23:16

没必要,学学C#不香嘛?

dm530 发表于 2021-9-15 08:28

谢谢学习了!!!

CarlZhang 发表于 2021-9-15 08:39

同重开自学java,一起学习!

RedLips彡 发表于 2021-9-15 10:27

支持楼主

CharlesLee 发表于 2021-9-15 11:35

支持,不过别光学习,造点轮子出来会更透彻。
页: [1]
查看完整版本: 历次重开Java学习的记录0x03