zoukankan      html  css  js  c++  java
  • Java基础00-抽象类20

    1. 抽象类

    1.1 抽象类概述

     

    代码示例:
    没有{}大括号的方法就是一个没有方法体的方法,要把它定义成抽象方法,就要给它加一个abstract关键字,而类中有抽象方法,该类也必须是一个抽象类,所以给类也加一个abstract关键字。
    将方法体去掉是因为,动物类中的吃东西本身就是一个抽象的概念,你不知道吃的是什么东西,只知道吃东西。
    所以干脆不写,让它在子类中被子类重写,而子类比如猫,它是可以具有到吃什么东西的,“猫吃老鼠” “猫吃耗子”,都是可以的。

    1.2 抽象类的特点

     

    1.3 抽象类的成员特点

     1.4 案例:猫和狗

    public abstract class AbstractAnimal {
        private String name;
        private int age;
    
        public void setName(String name){
            this.name = name;
        }
    
        public String getName(){
            return name;
        }
    
        public void setAge(int age){
            this.age = age;
        }
    
        public int getAge(){
            return age;
        }
        public AbstractAnimal(){
            System.out.println("抽象类无参构造方法");
        }
    
        public AbstractAnimal(String name,int age){
            System.out.println("抽象类有参构造方法");
        }
    
        public abstract void eat();
    }
    public class CatExtendsAbstract extends AbstractAnimal {
        public CatExtendsAbstract(){
            super();
            System.out.println("猫子类无参构造方法");
        }
    
        public CatExtendsAbstract(String name, int age){
            super(name, age);
            System.out.println("猫子类有参构造方法");
        }
    
        public void eat(){
            System.out.println("猫吃鱼");
        }
    }
    public class DogExtendsAbstract extends AbstractAnimal {
        public DogExtendsAbstract(){
            System.out.println("狗子类无参构造方法");
        }
    
        public DogExtendsAbstract(String name, int age){
            System.out.println("狗子类有参构造方法");
        }
    
        public void eat(){
            System.out.println("狗吃骨头");
        }
    }
    public class AnimalAbstractDemo {
        public static void main(String[] args) {
            AbstractAnimal a = new CatExtendsAbstract();
            a.eat();        AbstractAnimal b = new DogExtendsAbstract();
            b.eat();
        }
    }

     输出:

    抽象类无参构造方法
    猫子类无参构造方法
    猫吃鱼
    抽象类无参构造方法
    狗子类无参构造方法
    狗吃骨头
  • 相关阅读:
    Linq To Sql 练习
    伪静态在webconfig中配置
    log4net.dll配置以及在项目中应用
    C#Windows服务安装
    .net平台推送ios消息
    asp.net下js调用session
    MAC地址泛洪攻击测试
    wifipineapple使用教程
    python程序的调试方法
    python import的用法
  • 原文地址:https://www.cnblogs.com/ajing2018/p/14666510.html
Copyright © 2011-2022 走看看