4.16Java抽象方法和抽象类

4.16Java抽象方法和抽象类

抽象方法

抽象方法的概念

使用abstract修饰的方

特点:

  • 没有方法体,只有声明。

  • 定义的是一种"规范"

作用:

告诉子类必须要给抽象方法提供具体的实现

抽象类

抽象类的概念

包含抽象方法的类就是抽象类

特点:

  • 通过abstract方法定义规范

  • 要求子类必须定义具体的实现

作用:

严格设计子类的设计,使子类之间更加通用

之前创建方法的办法:

//创建方法有方法体
package com.cxl;

/**
* Java抽象类练习
* @author Lucifer
*/
public class Animal {
   public void shout(){
       System.out.println("eee");
  }
}

抽象类的意思就是创建方法没有具体的方法体:---包含抽象方法的类必须是抽象类(类也要是抽象的)

实例:

package com.cxl;

/**
* Java抽象类练习
* @author Lucifer
*/
abstract class Animal {
   /*上面的写法就是定义了抽象类*/

   /*声明抽象方法*/
   abstract public void shout();
   /*
   抽象方法的特点:
   父类没有实现这个方法
   子类在继承的时候必须实现这个方法
   提供了类似的设计规范
    */

   /*在抽象类中也定义了普通的方法*/
   public void run (){
       System.out.println("Running");
  }
}

class Dog extends Animal{

   /*
   因为没有实现父类的抽象类的方法,所以报错
   重写shout方法至于方法里面有什么可以自行定义
    */

   @Override
   public void shout(){
       //TODO Auto-generated method stub
       //实现抽象父类的抽象方法
       System.out.println("www");
  }

   //子类自己的方法
   public void seeDoor(){
       System.out.println("看门呢");
  }

   //测试抽象类
   public class TestAbstractClass{
       public static void main(String[] args){
           //这个static一直在报错
           Dog a = new Dog(); //创建类对象
           a.shout();
           a.seeDoor();
      }
  }
}

抽象类的使用要点:

  1. 有抽象方法的类职能定义成抽象类

  2. 抽象类不能实例化---就是不能用new来实例化抽象类,但是可以实例化继承抽象类的子类对象

  3. 抽象类可以包含属性、方法、构造方法,但是构造方法不能用new实例,只能用来被子类调用

  4. 抽象类只能用来被继承

  5. 抽象方法必须被子类实现

posted @ 2021-04-16 21:13  俊king  阅读(107)  评论(0)    收藏  举报