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

    1    抽象类&抽象方法的定义

    抽象方法定义的格式:

    public abstract 返回值类型 方法名(参数);

    抽象类定义的格式:

    abstract class 类名 {

    }

    2     抽象类的特点:

    1、抽象类和抽象方法都需要被abstract修饰。抽象方法一定要定义在抽象类中。

    2、抽象类不可以直接创建对象,原因:调用抽象方法没有意义。

    3、只有覆盖了抽象类中所有的抽象方法后,其子类才可以创建对象。否则该子类还是一个抽象类。

    public abstract class Developer {
        //抽象方法没有方法体
        public abstract void work();
    }
    
    
    public class JavaEE extends Developer{
        //抽象方法
        public void work(){
            System.out.println("JavaEE工程师写JavaEE代码");
        }
    }
    
    public class Test {
        public static void main(String[] args) {
            JavaEE java=new JavaEE();
            java.work();
        }
    }

    3     抽象类的细节问题:

    1、抽象类一定是个父类?

         是的,因为不断抽取而来的。

    2、抽象类中是否可以不定义抽象方法。

    是可以的,那这个抽象类的存在到底有什么意义呢?不让该类创建对象,方法可以直接让子类去使用

    3、抽象关键字abstract不可以和哪些关键字共存?    

    l  1、private:私有的方法子类是无法继承到的,也不存在覆盖,而abstract和private一起使用修饰方法,abstract既要子类去实现这个方法,而private修饰子类根本无法得到父类这个方法。互相矛盾。

    l  2、final

    l  3、static

    4  接口概念

    接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的”类”。

    接口定义时需要使用interface关键字,类实现接口使用implements

    public interface Myinterface {
        //接口中所有成员变量修饰符public static final
        //static 静态:只要被static修饰的成员,在外界可以直接通过类名.成员调用
        //final 最终的:被final修饰的变量叫常量,一次赋值终身不变
        public static final int a=0;
        //接口中所有方法的修饰符都是 public abstract
        public abstract void a();
    }
    
    
    //类实现接口
    public class MyinterfaceImp implements Myinterface{
        public void a(){};
    }

    在类实现接口后,该类就会将接口中的抽象方法继承过来,此时该类需要重写该抽象方法,完成具体的逻辑。

    接口中可以定义变量,但是变量必须有固定的修饰符修饰,public static final 所以接口中的变量也称之为常量,其值不能改变。

    接口不可以创建对象。

    接口最重要的体现:解决单继承的弊端。将类的单继承这种机制在java中通过多实现完成了。

  • 相关阅读:
    Java --关于线程池的理解Executors.newFixedThreadPool(int n)
    有参数返回的Lambda
    vuejs经验交流之-开发环境和生产环境的启动
    vuejs经验交流之-安装(NPM)
    vuejs经验交流之-form表单校验
    Vue.js简介
    vuejs经验交流之-components(组件)
    vuejs经验交流之-图片上传
    vuejs经验交流之-watch 深度监测
    setTimeout(), clearTimeout()
  • 原文地址:https://www.cnblogs.com/quanjunkang/p/10616387.html
Copyright © 2011-2022 走看看