zoukankan      html  css  js  c++  java
  • java中的抽象类和接口

    抽象类、抽象方法(abstract抽象类)

    //继承了抽象类的子类,都必须重写(实现)它的所有 抽象方法(一般方法不用) //除非子类也是抽象类,那就由它的子子类重写(实现)

     //abstract抽象类
     //继承了抽象类的子类,都必须重写(实现)它的所有 抽象方法(一般方法不用)
     //除非子类也是抽象类,那就由它的子子类重写(实现)
     
    public abstract class Action {
         
         public abstract void doSomething(); //抽象方法
         
         public void test(){
             
         };
     }

      

     package com.basics.demo4;
     ​
     public class A extends Action {
     ​
         //重写抽象类里面的抽象方法
         @Override
         public void doSomething() {
     ​
         }
     }

    //1、不能new这个抽象类,只能靠子类去实现它;约束

    //2、抽象类中可以写普通的方法 //

    3、抽象方法必须在抽象类中

     

    接口(interface)

     //接口都会与实现类
     public interface UserService {
         //接口中的所有定义的方法中其实都是抽象的 public abstract
         //public abstract void add();
         //等效于 void add();
    //int age = 99; 等效于
         //public static final int age = 99;
         int age = 99;
         void add(String name);
         void delete(String name);
         void update(String name);
         void query(String name);
     }

    函数式接口

    函数式接口就是一个有且仅有一个抽象方法,但是可以有多个非抽象方法的的接口

    函数式接口可以被隐式转换为lambda表达式

     

    实现接口

     public class UserServiceImp1 implements UserService,TimeService{
         //里面是接口方法的重写的方法
         //类似可以实现多继承 , 伪多继承
     }

    作用:

    1、约束

    2、定义一些方法,让不同的人实现

    3、public abstract

    4、public static final

    5、接口不能被实例化,因为接口中没有构造方法

    6、可以实现多个接口

    7、必须要重写接口中的方法

     

    抽象方法特点

    abstract修饰符:

         1.abstract修饰的类为抽象类,此类不能有对象,(无法对此类进行实例化,说白了就是不能new);

         2.abstract修饰的方法为抽象方法,此方法不能有方法体(就是什么内容不能有);

    抽象类的使用特点:

        1.抽象类不能有对象,(不能用new此关键字来创建抽象类的对象);

        2.有抽象方法的类一定是抽象类,但是抽象类中不一定有抽象方法;

        3.抽象类中的抽象方法必须在子类中被重写。

    接口特点

    接口中的所有定义的方法中其实都是抽象的 public abstract


    public abstract void add();
    等效于 void add();

    int age = 99; 等效于
    public static final int age = 99;

    接口不能被实例化,因为接口中没有构造方法

    类可以实现多个接口,必须要重写接口中的方法

    
    

    至于接口和抽象类的区别:

    最明显的一个区别就是他们的实现:一个是接口,一个是类

    接口的实现就是去实现这个接口,而且java中一个类可以实现多个接口。  但接口里面只能写接口,不能写普通方法。

    而抽象类必须通过继承去实现,并且java中是单继承的。  但抽象类中除了可以写抽象方法外,还可以写普通方法。

    本人也正处于学习阶段,这是本人的一些学习笔记和理解,不正确的地方还请理解和指正。

  • 相关阅读:
    1. cocos creator 连接服务端
    cocos creator 中的粒子效果
    cocos creator
    5.4 笔记
    事后诸葛亮
    PHP之魔术方法
    结队编程--作业一
    团队作业9——事后分析(Beta版本)
    团队作业8——测试与发布(Beta阶段)
    Beta版本冲刺计划
  • 原文地址:https://www.cnblogs.com/consttree/p/13937916.html
Copyright © 2011-2022 走看看