Java中的抽象类

A.抽象类的简单概述:

抽象类是指在普通类的结构里面增加抽象方法的组成部分。在Java中一个没有方法体的方法被定义为抽象方法,如果一个类中有抽象方法,那么这个类必须定义为抽象类。

B.抽象类的特点:

a.抽象类和抽象方法必须有"abstract"关键字修饰。

public abstract class 类名 { }

b.抽象类中不一定只有抽象方法,有抽象方法的类一定是抽象类。

c.抽象类不能实例化,抽象类应该按照多态通过子类对象进行实例化,叫做抽象类多态。

d.抽象类的子类:

1.要么是抽象类;

2.要么重写抽象类中所有的抽象方法;

e.代码案例;

package demo123;

/**
 * @author ln
 * @date 2022/1/23
 * @desription 抽象类的特点
 */
//抽象类
public abstract class Animal {
    //抽象方法
    public abstract void eat();

    //普通方法
    public  void sleep() {
        System.out.println("睡觉。。。。");
    }
}
package demo123;
/**
 * @author ln
 * @date 2022/1/23
 * @desription 抽象类的特点
 *              子类
 */
public  class Cat extends Animal {
    @Override
    public void eat() {
        System.out.println("猫要吃鱼。。。。");
    }
}
package demo123;
/**
 * @author ln
 * @date 2022/1/23
 * @desription 抽象类的特点
 *              测试类
 */

public class AnimalTest {
    public static void main(String[] args) {
        //抽象类多态完成实例化
        Animal cat = new Cat();
        cat.eat();
        cat.sleep();

    }
}

C.抽象类中的成员特点:

a.成员变量:

1.可以为变量;

2.可以为常量;

b.构造方法:

1.可以存在构造方法,但不能实例化

2.构造方法的意义在于子类访问父类数据的初始化

d.成员方法:

1.可以有成员方法,为了提高代码的复用性;

2.可以有抽象方法,目的为了限定子类必须完成父类的某些动作

e.代码案例;

package demo123;
/**
 * @author ln
 * @date 2022/1/23
 * @desription 抽象类中成员的特点
 */

public abstract class Animal02 {
    //变量
    private int age = 5;
    //常量
    public final String address = "武汉";

    //构造方法
    public Animal02 () {}

    public Animal02 (int age) {
        this.age = age;
    }

    //抽象方法
    public abstract void eat();

    //普通方法
    public void show(){
        age = 6;
        System.out.println(address);
        System.out.println(age);
    }

}
package demo123;
/**
 * @author ln
 * @date 2022/1/23
 * @desription 抽象类中成员的特点
 */
public  class Cat02 extends Animal02 {
    @Override
    public void eat() {
        System.out.println("猫要吃鱼。。。。");
    }
}
package demo123;

public class AnimalTest02 {
    public static void main(String[] args) {
        Animal02 cat = new Cat02();
        cat.eat();
        cat.show();
    }
}

你可能感兴趣的:(Java学习笔记,java,开发语言,后端)