java温习*(14):关于抽象类应用总结

作用:

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

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

定义抽象类的意义在于:

  1. 为其子类提供一个公共的类型(父类引用指向子类对象)

  2. 封装子类中的重复内容(成员变量和方法)

  3. 将父类设计成抽象类后,既可借由父子继承关系限制子类的设计随意性,在一定程度上避免了无意义父类的实例化。

语法:

//img2.mukewang.com/5eb4fab80001625205020147.jpg

特点:

  1. 抽象类不允许直接实例化,换句话说抽象类不能创建对象,它只能作为其他类的父类。 但可以通过向上转型,指向子类实例。(如图1,2)

//img3.mukewang.com/5eb4facd00015f1e05540103.jpg(图1)//img4.mukewang.com/5eb4fad60001bcce05060036.jpg(图2 )

  1. 当类中存在抽象方法,则必须声明为抽象类(如图3,4);但是抽象类中可以没有抽象方法(如上面图1)。

//img.mukewang.com/5eb4fae0000147d805540094.jpg(图3)//img1.mukewang.com/5eb4fae70001379b05300120.jpg(图4)

3、一个类继承抽象类后,必须实现其所有抽象方法,否则也是抽象类(如上图3,下图5,6);不同的子类对父类的抽象方法可以有不同的实现。

//img.mukewang.com/5eb4faf40001fdb904800318.jpg(图5)

//img2.mukewang.com/5eb4fb030001cc3105080185.jpg(图6)

4、abstract 方法不能用 static 和 private 修饰;对于类,不能同时用 final 和 abstract 修饰。因为 final 关键字使得类不可继承,而 abstract 修饰的类如果不可以继承将没有任何意义。两者放在一起,也会引发编译异常。(如图7,8,9)

//img4.mukewang.com/5eb4fb100001d82b05540026.jpg(图7)//img2.mukewang.com/5eb4fb1c0001068305540024.jpg(图8)//img3.mukewang.com/5eb4fb25000169b105540091.jpg​(图9)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值