第一个问题就是 java中 是不是类中有抽象方法 累就一定要声明为抽象类呢?
第二个问题就是 在java中,类中有抽象方法 就成了抽象类 因而不能实例化,而在子类中只要重写该方法就可以进行实例化了 这是为什么呢 我的意思是 他的子类不也继承了父类中的这个抽象方法吗 为什么就不是抽象类了呢 为什么就能实例化了呢
这个我能理解 但是他还是继承了原来的那个抽象方法啊 也即是他先在拥有了原来的那个抽象方法和现在重新的这个方法
也不知道这样理解是不是正确的 但重多态这个角度来看 我觉得就是这样理解吧
希望大哥给个给个更好的解答 谢谢了
你看到抽象方法有具体的方法实体吗?没有。
但是你继承了它并重写它的方法实体,所以就实例化了这个方法。请注意理解实例化的说法的不同表达的含义。
“也即是他先在拥有了原来的那个抽象方法和现在重新的这个方法”这个理解是错误的。
但是我看马上兵老师那个视频 他说再给每个子类实例化成对象的时候 都得先将其父类实例化
但是对于一个父类是抽象的类 他的父类如何能够实现实例化呢
或者说这更本就是我理解错了呢
希望大哥解释一下 谢了
那个覆盖只是重表层上看吧 实际上父类原来有的那个方法和重写了她的那个新方法都死存在的啊 不是有个叫做多态的东西吗 他就可以根据实例对象访问不同的方法啊
另外不是每一个子类的实例 都得先要实例里面的那个父类吗 而里面那个父类是抽象的怎么能够实例化呢
我真的对这个问题好糊涂 希望大哥给个详细的解释 谢谢了
是存在 但存在也不过是类似指针的调用 你重写了 在本类中就默认使用这个新的 除非你用super去调用父类的方法 每个子类的构造方法都会默认调用父类的无参构造方法 而抽象方法虽然不能直接new 但它还是有无参构造方法的
就算覆盖了 那个多态是怎么回事呢