分享

面试题-抽象类中的小问题

 樱花梦_张艺馨 2016-09-06
一个类如果没有抽象方法,可不可以定义为抽象类? 如果可以,有什么意思
答:可以!不让创建对象!
抽象类(abstract)不能跟哪些关键字共存?
private 冲突(abstract的方法是强制子类重写的,改成private后私有方法无法继承、重写)
final 冲突(final不能被重写)
static 无意义
 
=====================测试abstract与private============================
abstract class Person{
   //public abstract void show();
   private abstract void show();
}
class Student extends Person{
}
class Test{
 public static void main(String [] args){
 
 }
}
结果:
编译报错:
Test.java:3: 非法的修饰符组合:abstract 和 private
   private abstract void show();
                         ^
Test.java:5: Student 不是抽象的,并且未覆盖 Person 中的抽象方法 show()
class Student extends Person{
=========================测试abstract与final============================
abstract class Person{
   //public abstract void show();
   //private abstract void show();
   final abstract void show();
}
class Student extends Person{
public void show(){}
}
class Test{
 public static void main(String [] args){
 
 }
}
结果:
编译报错:
Test.java:4: 非法的修饰符组合:abstract 和 final
   final abstract void show();
                       ^
Test.java:7: Student 中的 show() 无法覆盖 Person 中的 show();被覆盖的方法为 fin
al
public void show(){}
================================static与abstract测试====================
abstract class Person{
   //public abstract void show();
   //private abstract void show();
   //final abstract void show();
   static abstract void show();
}
class Student extends Person{
public void show(){}
}
class Test{
 public static void main(String [] args){
 
 }
}
结果:
编译报错:
Test.java:5: 非法的修饰符组合:abstract 和 static
   static abstract void show();
                        ^
Test.java:8: Student 中的 show() 无法覆盖 Person 中的 show();被覆盖的方法为 sta
tic
public void show(){}

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多