首页 > 编程语言 > 详细

Java 抽象类与接口

时间:2019-04-01 22:14:27      阅读:123      评论:0      收藏:0      [点我收藏+]

一、抽象类

在Java语言中,使用 abstract  class 来定义抽象类:

/**
 * 定义一个抽象类
 * @author Administrator
 *
 */
public abstract class Demo {

}

 

  • 尽管Demo类是抽象类,但是它仍然可以有成员变量,成员方法和构造方法
  • 抽象类不能被实例化
  • 抽象类可以被继承

 

抽象方法:

  使用abstract 来声明抽象方法,抽象方法只包含一个方法名。且没有方法体。

 

声明抽象方法会造成以下两个结果:

  • 如果一个类包含抽象方法,那么该类必须是抽象类。
  • 任何子类必须重写父类的抽象方法,或者声明自身为抽象类。

 

继承抽象方法的子类必须重写该方法。否则,该子类也必须声明为抽象类。最终,必须有子类实现该抽象方法,否则,从最初的父类到最终的子类都不能用来实例化对象

 

/**
 * 定义一个抽象类
 * @author Administrator
 *
 */
public abstract class Demo {
    
    public String name;        //抽象类中的成员变量
    public String sex;
    public int age;
    
    /**
     * 抽象类的构造方法
     */
    public Demo(){
        
    }
    
    /**
     * 抽象类中的成员方法
     */
    public void fun(){
        System.out.println("我是抽象类中的成员方法");
    }
    
    /**
     *     抽象方法
     *     使用abstract声明
     *     没有方法体
     */
    public abstract void funtion();
}    

 

抽象类总结规定:

  1. 抽象类不能被实例化(初学者很容易犯的错),如果被实例化,就会报错,编译无法通过,只有抽象类的非抽象子类可以创建对象。

  2. 抽象类中不一定包含抽象方法,但是有抽象方法的类必定是抽象类。

  3. 抽象类中的抽象方法只是声明,不包含方法体,就是不给出方法的具体实现也就是方法的具体功能。

  4. 构造方法,类方法(用 static 修饰的方法)不能声明为抽象方法。

  5. 抽象类的子类必须给出抽象类中的抽象方法的具体实现,除非该子类也是抽象类

 

二、接口

接口定义的语法格式如下:

  [访问控制修饰符] interface 接口名 [ extends 接口列表]{

    常量

    抽象方法

  }

/**
 * 定义一个借口
 * @author Administrator
 *
 */
public interface Interface {
    
        public String name = "abc";        //接口中的常量
        public int age = 18;
        
        /**
         *     接口中的抽象方法
         *     接口中定义抽象方法可以不写abstract
         */
        public void fun();
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Java 抽象类与接口

原文:https://www.cnblogs.com/sloth-007/p/10639085.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!