抽象类

抽象类

顾名思义,抽象是指从具体事物抽出、概括出它们共同的方面、本质属性与关系等,而将个别的、非本质的方面、属性与关系舍弃的思维过程,在我们生活中很常见,比如,鸡鸭鱼狗,我们可以将其抽象成动物

概念:在面向对象的概念中,所有的对象都是通过类来描绘的,但是反过来,并不是所有的类都是用来描绘对象的,如果一个类中没有包含足够的信息来描绘一个具体的对象,这样的类就是抽象类。

也就是说其是模糊不清的,不具体的。

特点:

  1. 抽象类不能实例化对象(对象必须有具体的内容而抽象类含有不具体的内容)
  2. 抽象类必须作为父类存在
  3. 类的其它功能依然存在,成员变量、成员方法和构造方法的访问方式和普通类一样。但是抽象类中可能含有抽象函数。
  4. 抽象类关键字abstract不能和private、static、final共存(抽象类等着被子类重写所以不能使用private,我们在加载静态的时候,必须是具体的数据,而且如果static可以通过类名调用一个抽象方法当然是不行的,抽象类的方法等着子类去重写,用final修饰表示不可被修改,也是不行的。)
  5. 补充:抽象类中可以存在private属性和方法,但是不能被abstract同时修饰且子类无法访问。
public abstract class Animal{//抽象类
    private String name;
    public void sing()
        System.out.println("我会叫!");
    }
    public abstract void eatFood();//抽象方法
} 

//=================================

public class Dog extends Animal{
    
    public void sing(){
        System.out.println("我会汪汪叫!");
    }
    
    public void eatFood(){
        System.out.println("我吃的是狗粮!");
    }
    public static void main(String[] args){
        Dog d = new Dog();
        d.sing();
        d.eatFood();
    }
}

 

你可能感兴趣的:(Java,笔记)