抽象类成员特点

抽象类成员特点

  1. 成员变量
    可以是变量
    也可以是常量
  2. 构造方法
    有构造方法,但不能自身实例化
    那么,构造方法的作用是什么呢?用于子类访问父类数据的初始化
  3. 成员方法
    可以有抽象方法,限定子类必须完成某些操作
    也可以说有非抽象方法:提高代码复用性

图文和代码解释

图:注意Animal是抽象类父类(图标)柏维怡

Animal(抽象类父类)

package CCom.Cnn;
//抽象类
public abstract class Animal {
       private int age;
       public final String name="沸羊羊";
       //可以是常量,也可以是变量,可以私有,也可以说是公共的
       private int number;
       private final String good="100";
       //并且还有构造器(无惨/有参)


    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public int getNumber() {
        return number;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public Animal() {
    }//可以有无参

    public Animal(int age, int number) {
        this.age = age;
        this.number = number;
    }//可以有带参

    public abstract void eat();//抽象方法
       public void sleep(){
           System.out.println("睡觉");
       }//不是抽象方法也可以定义
    }

AnimalDemo(测试类)

package CCom.Cnn;
/*
抽象类成员特点:
1.成员变量
         可以是变量
         也可以是常量
2.构造方法
         有构造方法,但不能自身实例化
         那么,构造方法的作用是什么呢?用于子类访问父类数据的初始化
3.成员方法
         可以有抽象方法,限定子类必须完成某些操作
         也可以说有非抽象方法:提高代码复用性

 */
public class AnimalDemo {
    public static void main(String[] args) {
           Animal a=new Cat(14,16);//抽象类也是以多态方法进行
           a.eat();
           a.sleep();
        System.out.println(a.getAge()+","+a.getNumber());//注意了抽象类可以属性私有get/set的
    }
}

Cat(子类)

package CCom.Cnn;
public class Cat extends Animal {
    public Cat(int a,int b) {
        super(a,b);//可以调用父类(抽象类)变量
    }

    public void eat(){
        System.out.println("猫吃猫粮");
    }//子类实现抽象类的eat抽象方法
}

输出的结果:
猫吃猫粮
睡觉
14,16


版权声明:本文为o676448原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。