关于java的抽象类
我们在上一篇文章中,详细分析了static的意义和用法,本篇文章中我们来了解一下抽象类,抽象类是比抽象更加抽象的😀。
一、抽象类
- abstract 修饰符可以用来修饰方法,也可以修饰类。
- 如果修饰方法,那么这个方法就是抽象方法。
- 如果修饰类,那么这个类就是抽象类。
package oop.Demo10;
//abstract 抽象类
public abstract class Action
{
public void doSomething()
{
}
}
二、抽象方法
如果我们想写一个方法,但是自己不实现,让别人帮我们实现,就可以添加一个抽象修饰符abstract 。
package oop.Demo10;
//abstract 抽象类
public abstract class Action
{
public abstract void doSomething();
}
- 抽象方法:只有方法的名字,没有方法的实现。
我们新建一个子类Son,然后让子类去继承Action这个抽象的父类。
package oop.Demo10;
public class Son extends Action//编译器会报错
{
}
所以我们重写一下doSomething的方法。
package oop.Demo10;
public class Son extends Action{
@Override
public void doSomething() {
}
}
- 抽象类的所有方法,继承它的子类,都必须要实现它的方法。
- 如果子类也是抽象类,那就不用去实现,可以让子子类去实现🤣。
package oop.Demo10;
public abstract class Son extends Action{
}
三、抽象类的特点
- 不能new抽象类,只能靠子类去实现,它的本质是一个约束。、
- 如果我们想new,只能去new子类的对象,如果子类也是抽象类,那就继续找子子类。
- 抽象类中可以写普通方法。
- 抽象方法必须在抽象类中。
- 抽象的抽象:约束!!
四、抽象类的意义
1、必须集成的属性方法用抽象方法, 非必需的用接口;
2、接口是规范是协调与其它类的方法交互的一种协议准则;
3、抽象方法必须是Public的;
4、想要了解抽象类,只需记住抽象方法的应用场景就行了;
5、抽象方法是定一种或者一类事物必须有的一种技能,但是这种技能的表现形式对于各个继承者的表现形式不一样,就把它定义为抽象方法。因为抽象方法必须存在抽象类,所以把普通父类定义为抽象类;
五、接口
- java里面,如果我们想使用抽象类,就脱离不了继承extends。
- 但是java的类只是单继承,不能实现多继承。
- 接口,是可以实现多继承的,我们放在下篇文章中详细说明。