玩命加载中 . . .

抽象类(17)


抽象类

  1. 语法格式:
    [修饰符] abstract class 类名{}

  2. 抽象类无法被实例化

    虽然抽象类没有办法实例化,但是抽象类也有构造方法,该构造方法是给子类创建对象用的

  3. 抽象类中可以定义抽象方法

    抽象方法的语法:在方法的修饰符列表中添加abstract关键字,并且抽象方法应该以”;”结束,不能带有”{}”
    例如:public abstract void m();

  4. 抽象类中不一定有抽象方法,但抽象方法必须出现在抽象类中

  5. 一个非抽象的类继承抽象类,必须将抽象类中的抽象方法覆盖,实现,重写

    // 动物类
    public abstract class Animal {
        private String name;
        // 构造函数
        public Animal() {}
    
        public Animal(String name) {
            this.name = name;
        }
        // 非抽象方法
        public void setName(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        // 抽象方法:成员方法
        public abstract void run();
    }
    
    // 猫科类
    public class Cat extends Animal{
        //注意:子类一定要重写父类中的抽象方法不然会编译错误
        public void run() {
            System.out.println("猫会跑步");
        }
    }
    
    // 测试类
    public class AnimalTest {
        public static void main(String[] args) {
            Animal animal = new Cat();
            animal.run();
        }
    }
    
  6. 抽象类的用途:

  7. Java中抽象类更利于代码的维护和重用。

抽象类往往用来表征对问题领域进行分析、设计中得出的抽象概念,是对一系列看上去不同,但是本质上相同的具体概念的抽象。
  1. 因为抽象类不能实例化对象,所以必须要有子类来实现它之后才能使用。这样就可以把一些具有相同属性和方法的组件进行抽象,这样更有利于代码和程序的维护。
比如本科和研究生可以抽象成学生,他们有相同的属性和方法。这样当你对其中某个类进行修改时会受到父类的限制,这样就会提醒开发人员有些东西不能进行随意修改,这样可以对比较重要的东西进行统一的限制,也算是一种保护,对维护会有很大的帮助。
  1. 当又有一个具有相似的组件产生时,只需要实现该抽象类就可以获得该抽象类的那些属性和方法。
比如学校又新产生了专科生这类学生,那么专科生直接继承学生,然后对自己特有的属性和方法进行补充即可。这样对于代码的重用也是很好的体现。

文章作者: 小靳同学
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 小靳同学 !
评论
 上一篇
super关键字(16) super关键字(16)
super关键字 super不是引用类型,,super中存储的不是内存地址,,super指向的不是父类对象 super代表的是前子类对象中
2021-06-08
下一篇 
接口(18) 接口(18)
接口官方解释 接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装
2021-06-08
  目录