MichaelBlog

double i = Double.MAX_VALUE; while(i == i + 1){ System.out.print ("学无止境");};

导航

Java抽象类

Java抽象类

✨抽象类不可以用于创建对象。抽象类可以包含抽象的方法,这些方法要在具体的子类中实现。

抽象类:抽象方法所在的类,必须是抽象类才行。在class之前写上abstract即可。

public abstract class Animal {

抽象方法: 就是加上abstract关键字,然后去掉大括号,直接分号结束。

public abstract void eat();

如何使用抽象类和抽象方法:

1. 不能直接创建new抽象类对象。
2. 必须用一个子类来继承抽象父类。cat extend Animal 
3. 子类必须覆盖重写抽象父类当中所有的抽象方法。
覆盖重写(实现):子类去掉抽象方法的abstract关键字,然后补上方法体大括号。
4. 创建子类对象进行使用。
5. 抽象类的构造方法定义为protected,因为它只被子类使用。
 */
public abstract class Animal {

    // 这是一个抽象方法,代表吃东西,但是具体吃什么(大括号的内容)不确定。
    public abstract void eat();

    // 这是普通的成员方法
//    public void normalMethod() {
//
//    }

}
public class Cat extends Animal {
	//创建子类猫是动物
    @Override 
    //子类必须覆盖重写抽象父类当中所有的抽象方法。
    public void eat() {
        System.out.println("猫吃鱼");
    }

}

public class DemoMain {

    public static void main(String[] args) {
 // Animal animal = new Animal();
 // 错误写法!不能直接创建抽象类对象
 //用一个子类继承父类后,覆盖重写父类抽象方法后new一个对象
        Cat cat = new Cat();
        cat.eat();
    }

}

一个抽象类不一定含有抽象方法,只要保证抽象方法所在的类是抽象类,即可。

这样没有抽象方法的抽象类,也不能直接创建对象,在一些特殊场景下有用途。

🎈抽象方法主要作用:捕捉子类的通用特性

抽象类的几点说明

  1. 抽象方法不能包含在非抽象类中;
  2. 抽象类是不能使用new操作符来初始化;
  3. 包含抽象方法的类必须是抽象类;
  4. 子类可以覆盖父类的方法并将它定义为abstract;
  5. 即使子类的父类是具体的,这个子类也可以是抽象的;
  6. 不能使用new操作符从一个抽象类创建一个实例,但是抽象类可以用作一种数据类型;

posted on 2022-04-16 09:48  Michael_chemic  阅读(119)  评论(0编辑  收藏  举报