抽象类的一个功能--不能被实例化。也就是不能被new.
举个生活中的例子
宠物类下面有狗狗类,猫猫类来继承它。
一般的情况我们有这两种方法
宠物类 a =new 狗狗类();
翻译就是。我有一只宠物,这只宠物是狗狗,它叫a
狗狗类a=new 狗狗类();
我有一只狗狗,它叫a.
这个不区别。关键的是,楼主来看下面的代码
宠物类 a=new 宠物类();
虽然我们经常说,我有一只宠物。(但是请注意,实际上没有一种叫宠物有东西。宠物是个泛泛的概念,我们现实生活中有狗和猫)
所以抽象类不能被new的功能。是为了符合事实意义。
同时也是类的一种高度概括。
我们说类是对象的抽象。抽象类又是各种各校类的抽象
抽象类可以帮助你管理你的代码,如:当你定义一个宠物抽象类时,你希望所有的宠物都具有吃、喝、叫功能,这样你就可以在这个宠物类中添加三个抽象方法,在你继承这个宠物类时,会提示你是否要实现这三个抽象。这样我们便看到了它的好处,它可以防止我们漏掉一些功能,便于我们的开发
抽象类是对象的抽象,例如现在有狗狗,小鸟、鱼等动物,我们需要对它每一项进行分析,它们都有的动作为吃、睡,都有的属性为眼睛,有了抽象类,我们就不用一条一条列,直接可以抽象到动物上,动物有的动作为吃、睡,都有的属性为眼睛,这样每个动物都有了这些属性和方法,只是具体实现的时候有不同罢了。其实,抽象类有点像接口
接口是精简的抽象类,抽象类除了让逻辑更加清晰外,在代码实现上其实没有一点用,而且很多余。同意这个回答的点赞!!!
安全