2019.3.13 抽象类与抽象方法

抽象类

  • 编写抽象类的方法:在 public 后加 abstract

  • 抽象类的特点:

    • 不能使用抽象类创建 "对象",只能使用抽象类创建 "子类"

    • 样例:联动上一篇父类Animal,这样创建对象就是错误的

    • 抽象类的标志

  • 编写抽象类Animal

   
    public abstract class Animal {

        private String name;
        private String kind;

        private int age;
        
        public void bite(){

        System.out.println("咬咬咬");
        }



        @Override
        public String toString() {
            return "Animal{" +
                    "name='" + name + '\'' +
                    ", kind='" + kind + '\'' +
                    ", age=" + age +
                    '}';
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getKind() {
            return kind;
        }

        public void setKind(String kind) {
            this.kind = kind;
        }

        public int getAge() {
            return age;
       }

        public void setAge(int age) {
            this.age = age;
        }
    }

抽象方法

  • 编写抽象方法的方法:在"public"后面添加"abstract"

  • 抽象方法的特征及注意事项

    • 抽象方法后不能有大括号,直接小括号加分号结尾(即没有方法体)
    • 抽象方法在子类中一定要被重写
    • 子类必须实现父类的抽象方法
    • 非抽象类不能写抽象方法
    • 抽象方法只是为了"给子类规定方法的格式"
  • 编写抽象类Animal中的抽象方法bark

   
    public abstract class Animal {

        private String name;
        private String kind;

        private int age;
        
        public void bite(){

        System.out.println("咬咬咬");
        }

        public abstract void bark();//这个就是抽象方法

        @Override
        public String toString() {
            return "Animal{" +
                    "name='" + name + '\'' +
                    ", kind='" + kind + '\'' +
                    ", age=" + age +
                    '}';
        }

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }

        public String getKind() {
            return kind;
        }

        public void setKind(String kind) {
            this.kind = kind;
        }

        public int getAge() {
            return age;
       }

        public void setAge(int age) {
            this.age = age;
        }
    }

    
  • 抽象方法在子类中必须要被重写样例
    
 
   public class Dog extends Animal{ 
        
       @Override
       public void bark() {

       System.out.println("汪汪汪");
        }
    } 

    
  • 当父类中有抽象方法且子类中没有重写时
    错误样例:
posted @ 2019-03-13 16:53  仲夏今天也在写前端  阅读(269)  评论(0编辑  收藏  举报