问题:
1,抽象类也是定义一些规则,为啥没有被接口完全替代?
答: 接口:
1,定义了一些规则; 增强功能(一个类实现多个接口)和多态(多个类实现一个接口)
抽象类:
1.定义了一些规则;
2.将一部分相同代码进行了抽取,增加了复用性;
3.将自身的功能给予了子类,相当于一种功能的积累;
有些时候只需要定义规则; 而有些时候既需要定义一定的规则,又有代码可以复用;所以它们都有各自存在的价值,因此没有完全替代之说.
2.何时使用抽象?
答:当从子类 抽取到相同方法,但方法在不同子类中的具体实现不完全相同时,考虑使用抽象方法,进而将类抽象;
3.抽象关键字abstract不能和哪些关键字共存?
答:
1. abstract 修饰的类必须被继承,final修饰的类不能被继承,所以二者不共存;
2. abstract 修饰的方法必须被覆盖,private修饰的方法无法被子类访问,更谈不上覆盖,所以二者不共存;
3. abstract 修饰的方法没有方法体,不能被直接调用,static修饰的方法可以直接通过类名调用,二者矛盾,所以二者不共存.
1,抽象类也是定义一些规则,为啥没有被接口完全替代?
答: 接口:
1,定义了一些规则; 增强功能(一个类实现多个接口)和多态(多个类实现一个接口)
抽象类:
1.定义了一些规则;
2.将一部分相同代码进行了抽取,增加了复用性;
3.将自身的功能给予了子类,相当于一种功能的积累;
有些时候只需要定义规则; 而有些时候既需要定义一定的规则,又有代码可以复用;所以它们都有各自存在的价值,因此没有完全替代之说.
2.何时使用抽象?
答:当从子类 抽取到相同方法,但方法在不同子类中的具体实现不完全相同时,考虑使用抽象方法,进而将类抽象;
3.抽象关键字abstract不能和哪些关键字共存?
答:
1. abstract 修饰的类必须被继承,final修饰的类不能被继承,所以二者不共存;
2. abstract 修饰的方法必须被覆盖,private修饰的方法无法被子类访问,更谈不上覆盖,所以二者不共存;
3. abstract 修饰的方法没有方法体,不能被直接调用,static修饰的方法可以直接通过类名调用,二者矛盾,所以二者不共存.