抽象类和普通类、抽象类和接口的区别

包含抽象方法的类称为抽象类,但并不意味着抽象类中只能有抽象方法,它和普通类一样,同样可以拥有成员变量和普通的成员方法。
【注意】抽象类和普通类的主要有三点区别

1)抽象方法必须为public或者protected(因为如果为private,则不能被子类继承,子类便无法实现该方法),缺省情况下默认为public。
2)抽象类不能用来创建对象;
3)如果一个类继承于一个抽象类,则子类必须实现父类的抽象方法。如果子类没有实现父类的抽象方法,则必须将子类也定义为为abstract类。
在其他方面,抽象类和普通的类并没有区别。

上面第1)点注意一下:普通方法可以为private,可以被继承但是不能被子类调用;抽象方法不能用private修饰,因为抽象方法要被重写才有意义。

补充:抽象类和接口的区别
①抽象类中可以有构造方法,但接口中没有;
②抽象类中可以有普通成员变量、静态方法、普通方法,抽象方法,而接口中只有抽象方法
③接口可以多实现,但只能继承一个类

发布了59 篇原创文章 · 获赞 111 · 访问量 6239

猜你喜欢

转载自blog.csdn.net/qq_37717494/article/details/104979688