抽象 abstract extends

来源:互联网 发布:生活中的帅哥知乎 编辑:程序博客网 时间:2024/05/29 13:17
/*
  描述一个事物,却没有足够的信息,这时就将这个事物称为抽象事物。
  
   面对抽象的事物,虽然不具体,但是可以简单化。
   不用面对具体的事物。
  
   特点:
   1.抽象方法一定定义在抽象类中,都需要用abstract来修饰。
   2.抽象类不能实例化,不能用关键字new关键字创建对象。
   3.只有子类覆盖所有的抽象方法后,子类具体化,子类就可以创建对象。
             如果没有覆盖所有的抽象方法,那么子类还是一个抽象类。
抽象类也是不断地向上抽取而来的。抽取了方法的声明,而不确定具体的方法内容。
由不同的子类来完成具体的方法内容
问题:
1.抽象类中有构造方法吗?
 有,抽象类的构造函数虽然不能给抽象类对象实例化,因为抽象类不能创建对象。
 但是抽象类有子类,它的构造函数可以子类的对象实例化。
 
 抽象类和一般类的异同点?
 相同:都是用来描述事物,都可以进行属性和行为的描述。
 不同:抽象类描述事物的信息 不具体,一般类描述事物的信息具体。
 代码的不同:
  抽象类中可以定义抽象方法,一般类不可以。
  抽象类不可以实例化,一般类可以。
2.抽象类一定是个父类吗?
 是的,必须需要子类覆盖抽象方法后,才可以实例化,使用这些方法。
 abstract class Demo extends Xxx
 {
  abstract void show();
 }
 class Sub extends Demo
3.抽象类中可以不定义抽象方法吗?
 可以的,仅仅是让该类不能创建对象。(抽象类本身不能创建对象,而继承了抽象类的子类若想创建对象,
  !  方便创建接口的对象                            必须要满足覆盖抽象类中所有的抽象方法。就因为抽象类中可以不定义抽象方法,
                                                                      进而可知,不定义抽象方法的抽象类,是为了不让该类创建对象)
4.抽象关键字abstract和哪些关键字不能共存? 
 final
 private
 static
 */
原创粉丝点击