zoukankan      html  css  js  c++  java
  • 抽象类与接口

    抽象类与接口

    抽象类,抽象方法

    使用abstract来定义抽象类,抽象类就是约束的作用,也不能产生对象实例,抽象类除了被继承之外,本身没有任何意义。一个抽象类可以不包含方法,也可以存在抽象方法和普通的方法。但抽象方法只能存在于抽象类中,抽象方法就是使用abstract创建的方法,这个方法没有方法体,以分号结尾,本身没有任何意义,只能被继承的子类重写。而继承这个抽象类的子类必须重写这个抽象类中的抽象方法。除非这个子类也是一个抽象类,那就交又他的子子类完成重写。

    抽象类:

    package oop.Demo06;

    public abstract class Action {//使用abstract定义抽象方法
       public abstract void a();//抽象方法,没有方法体
    }

    子类:

    package oop.Demo06;

    public class A extends Action{//继承抽象类Action,必须重写父类的抽象类
       @Override
       public void a() {//重写父类的抽象方法
      }
    }

    接口

    接口更像是一个升级版的"抽象类",接口中所有方法都只能是抽象方法,属性为常量(一般不会出现属性)。一个类可以同时实现多个接口,所以侧面实现了多继承的概念。和抽象类相同的是,接口也不能产生对象实例,不能被实例化,因为接口不是类,所以没有构造方法。

    使用interface关键字来替换类中的class关键字,就能把这个类换成一个接口。在接口中,只能定义抽象方法,方法默认是public abstract的。 而一个类,可以同时实现多个接口,实现伪多继承。在类名后面使用implements关键字连接 接口名,需要多个接口时,用逗号隔开接口名即可。但类必须重写每个接口内的所有方法,这就让接口起到了一个约束的作用。

     

    接口的定义和多继承形式:

    接口1

    package oop.Demo07;

    public interface UserService {//定义一个接口1
       //接口中所有方法都是抽象的
       
       void add(String name);//增
       void delete(String name);//删
       void update(String name);//改
       void query(String name);//查
    }

    接口2

    package oop.Demo07;

    public interface TimeService {//定义一个接口2
       void time();
    }

    创建一个类实现多个接口

    package oop.Demo07;
    //类通过implements实现接口,实现接口必须重写接口内的所有抽象类
    //一个类可以同时实现两个接口,实现了多继承
    public class UserServiceImpl implements UserService,TimeService{
       @Override
       public void add(String name) {//重写UserService的抽象方法

      }
       @Override
       public void delete(String name) {//重写UserService的抽象方法

      }
       @Override
       public void update(String name) {//重写UserService的抽象方法

      }

       @Override
       public void query(String name) {//重写UserService的抽象方法

      }


       @Override
       public void time() {//重写TimeService的抽象方法

      }
    }

     

  • 相关阅读:
    git使用教程PDF版
    Everything(一款用于检索硬盘文件的工具)
    Animate.css(一款有意思的CSS3动画库)
    bootstrap3中container与container_fluid的区别
    河北省重大技术需求征集系统设计(七稿)第九天
    河北省重大技术需求征集系统设计(七稿)第八天
    河北省重大技术需求征集系统设计(七稿)第七天
    河北省重大技术需求征集系统设计(七稿)第六天
    河北省重大技术需求征集系统设计(七稿)第五天
    河北省重大技术需求征集系统设计(七稿)第四天
  • 原文地址:https://www.cnblogs.com/jinweichaoyouqu/p/14013197.html
Copyright © 2011-2022 走看看