您的位置:首页 > 其它

关于抽象类的几个简单理解

2015-08-16 20:05 204 查看

一个类中的方法如果是抽象的话,该类就必须定义为抽象类.
抽象类不一定有抽象方法.抽象类和抽象方法必须用abstract修饰.
抽象类的子类要么是抽象类要么重写抽象类中的所有方法
抽象类不能实例化 按照多态的方式使用

abstract class Animal {public abstract void eat();}
abstract class Dog extends Animal {}
class Cat extends Animal {public void eat() {System.out.println("猫吃鱼");}}

class AbstractDemo {public static void main(String[] args) {
//Animal a = new Animal(); //无法实例化
         
      //Dog d = new Dog();  //无法实例化
         
      //Cat c = new Cat();
         
      //多态
Animal a = new Cat();
a.eat();}}

抽象类的成员特点:
A.成员变量:可以是变量,也可以是常量
B.构造方法:有构造方法,但是不能实例化.
             
      问题:构造方法有什么用?   用于子类访问父类时的初始化
C.成员方法:可以有抽象方法,也可以有非抽象方法.
             
      抽象方法:强制要求子类做某些事情.
             
      非抽象方法:用于给子类直接使用,提高了代码的复用性
两个问题:
1.  一个类如果没有抽象方法,可不可以定义为抽象类?如果可以,有什么意义?
             
           
      可以.为了不让别人创建对象
2.abstract不能和哪些关键字合用?
        final:final修饰的方法不能被重写,而abstract系iushi的方法要求必须被重写
        private:同上
        static:static修饰的方法可以通过类名调用,而abstract修饰的方法是没有方法体的,调用一个没有方法体的方法是没有 
           
              
           
  意义的,所以不能共享.   
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: