1、抽象类不能被实例化
2、抽象类内部可以包含非抽象成员
3、抽象类内部的子类必须实现它的内部属性和方法
4、在传统的继承关系中子类若向上转型为父类,那么这个父类对象调用所有东西都只能是父类的,但是若是抽象类的子类向上转型为抽象类的对象,那么这个对象若调用的不是抽象成员,那么就是调用抽象类中的成员,若调用的是抽象成员,那么调用的就是子类的重写的方法。
5、抽象类的好处
1、我们可以使用抽象类对象去接受所有的子类对象,这就意味着我们可以使用抽象类的数组去接受所有抽象类的子类对象。
2、结构层次分明,通过抽象类的使用,我们可以更为理解整个对象的抽象过程。
3、我们在可以在方法上或是方法的参数上利用父类可以接受子类对象的特点,将方法的返回值或者方法的参数设置为父类对象,于是即便用户调用该方法,传入的参数是该父类的任何一个子类都是允许的,而且返回值若是父类,最终也可以通过类型转换,转换为精准的子类对象。
个人理解,多态就好比是可以允许将一个十分准确的东西进行抽象化,我们可以将一个精装的类型对象抽象为一个包含多个类型的对象,这样一个参数就可以接受多种参数,同时返回的一个参数也可以代表着多个参数。