首页 > 其他分享 >抽象类

抽象类

时间:2023-02-18 20:03:20浏览次数:31  
标签:name age private 抽象 抽象类 方法

Q:为什么引入抽象类?
A:父类方法的不确定性

class Animal {
    private String name;
    private int age;

    public Animal(String name, int age) {
        this.name = name;
        this.age = age;
    }
    //eat方法动物都有,但不知道什么动物,在这里还要写,真是麻烦
    public void eat(){
        System.out.println("这是一个动物,但不知道吃什么");
    }
}
  • 问题:在这里,动物类有一个eat()方法,但不知道下面的子类要怎么写,写在父类又没啥用,没有任何意义,子类还要重写。
  • 解决方法:将该方法写为抽象方法,即没有实现的方法(没有方法体)
    抽象代码格式:
//由于有抽象方法,类需要声明为抽象类
abstract class Animal {
    private String name;
    private int age;

    public Animal(String name, int age) {
        super();
        this.name = name;
        this.age = age;
    }
	//声明为抽象方法
    public abstract void eat();

}

抽象类被继承,由子类来实现抽象方法

抽象类意义:

  • 抽象类的价值更多作用时在于设计,是设计者设计好后,让子类继承并实现抽象类

注意点:

  • 抽象类不能实例化
  • 抽象类不一定含有抽象方法
  • 抽象类还可以实现方法
  • 抽象类本质还是类,可以有任意成员
  • 抽象方法不能有主体
  • 如果一个类继承了一个抽象类,那么必须实现全部抽象方法,或者继续声明为抽象类
  • 抽象方法不能用private、final、static修饰,因为这些关键字与重写概念相违背

标签:name,age,private,抽象,抽象类,方法
From: https://www.cnblogs.com/pureayu/p/17133422.html

相关文章

  • 纯虚函数和抽象类
    纯虚函数和抽象类纯虚函数是一种特殊的虚函数,在某些情况下,基类中不能对虚函数给出有意义的实现,把它声明为纯虚函数。纯虚函数只有函数名、参数和返回值类型,没有函数体,具......
  • 抽象类和接口
    抽象类概念抽象方法:只有方法的定义,没有方法体的实现,这种方法就是抽象方法定义类抽象方法的类,就是抽象类 定义和实现抽象类和抽象方法是用abstract关......
  • JAVA 抽象类
    抽象类 在java语言继承层次结构中,位于上层的类更具有通用性,甚至更加抽象,这些类封装的方法被重写的可能更大.java用关键字  abstract 格式为: [访问控制符]a......
  • Java抽象类与接口
    Java中抽象类与接口Java抽象类在java中定义抽象类使用abstract关键字,具体用法如下:abstractclassAbstractClassName{}需要注意的是,定义一个抽象类的类名应该......
  • 抽象类和抽象方法
    java中的抽象类与抽象方法​​1、设计理念​​​​2、抽象方法​​​​3、抽象类​​​​3.1抽象类与普通类的区别​​​​3.2抽象类案例​​1、设计理念  父类要体现所......
  • abstract 抽象类
     约束~抽象方法,只有方法名字,没有方法的实现不能new这个抽象类,只能靠子类去实现它;约束!抽象类中可以写普通方法~抽象方法必须在抽象类中~......
  • Java 抽象类
    目录1、抽象方法和抽象类2、抽象类的作用当编写一个类时,常常会为该类定义一些方法,用于描述该类的行为方式,这些方法都有具体的方法体。但在某些情况下,某个基类只是知道其子......
  • 15 抽象类
    抽象类packagecom.zhan.base05Oop.demo06;//关键字:abstract是修饰符抽象//抽象类publicabstractclassTest15_01{publicstaticvoidmain(String[]......
  • 抽象类和接口的区别
    1、抽象类是单继承,接口可以多实现。2、抽象类中方法的访问权限可以任意,接口里方法的访问权限只能是public3、抽象类中可以有构造方法,接口中不能有。4、抽象类中可以有......
  • 36-抽象类
    abstractclasspackagecom.oop.Abstract;//抽象类publicabstractclassAction{//约束,有人帮我们实现//abstract抽象方法,只有方法名字,没有方法身体p......