1.抽象类不能被实例化(即创建对象), 它当中的方法是同过子类实现的.
原因浅析(基于Java不报错情况下的考虑):抽象类中一般会有抽象方法,抽象方法是没有被实现的像的抽取(没有方法体),如果成功的创建了抽象对象,那么该对象调用类中的抽象方法.并不能实现任何功能,这个调用是毫无意义的.
2.抽象类可以有构造方法,构造方法可以用(public,default,protected,private修饰) 一般不用private ,因为用private修饰的构造方法不能被子类调用,我们知道子类实现父类是必须通过调用父类的构造方法来初始化成员变量,并实现父类的方法,如果用private修饰则会导致子类无法调用父类的构造方法,从而无法初始化父类的成员变量,也不能实现父类的方法,那么,这个抽象类的定义就是毫无意义的.
3.子类继承抽象类中的抽象方法时必须重写.
4.关于父类中private关键字修饰的成员变量问题,我们知道private修饰的成员变量和成员方法是不能被继承的.
但是private修饰的成员变量是可以通过set和get方法来赋值和调用的,并且子类在创建对象时默认的调用父类的无参构造,从而继承了父类的set和get方法来对父类私有成员变量进行赋值和调用
归根结底,private关键字修饰的成员变量必须有相应的get和set方法才能得到调用(即private修饰的成员变量必须有相应的get和set方法)