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

    1、抽象类:
    抽象类定义 abstract:[public abstract class clas_name{ }(抽象类)]
    抽象方法 abstract :[public abstract void/返回值类型 name();(抽象方法)注:没有方法体]
    方法体: 方法{ 方法体 } 方法里面的内容就是方法体 (包括{ })
    抽象类不能创建对象,因为没有意义
    如果一个普通类继承了抽象类,就必须重写里面的所有抽象方法
    有抽象方法的类一定是一个抽象类(一个抽象类不一定有抽象方法)
    抽象类可以定义普通方法,但是该方法只能是继承本类的普通类去调用
    abstract 不能和 private(矛盾) 、final(常量) 、 static 一起用

    package com.oracle.dome01;
    //抽象类定义 abstract
    //抽象类不能创建对象,因为没有意义
    //如果一个普通类继承了抽象类,就必须重写里面的所有抽象方法
    //有抽象方法的类一定是一个抽象类
    //抽象类可以定义普通方法,但是该方法只能是继承本类的普通类去调用
    public abstract class developer {
         //抽象方法(没有方法体)
          public abstract void work();
    }
    package com.oracle.dome01;
    
    public class andriod extends developer{
        public  void work(){
            System.out.println("写安卓代码");
        }
    }
    package com.oracle.dome01;
    
    public class javaEE extends developer{
        public  void work(){
            System.out.println("写javaEE代码");
        }
        public void work(int[] list){
            
        }
        public void work(double[] list){
            
        }
    }    

    建立测试类

    package com.oracle.dome01;
    
    public class test {
    
        public static void main(String[] args) {
            javaEE j = new javaEE();
            j.work();
            andriod a = new andriod();
            a.work();
        }
    
    }

    效果如下:

    2、接口:(接口是功能的集合 可以看做是一种 数据类型)
    (1)定义:接口定义时需要使用interface关键字[编译后仍然会产生.class文件]
    (2)类实现接口:implement
    (3)接口的多实现:解决多弊端的弊端
    (4)类继承类同时实现接口 [接口中定义的事物的扩展功能,父类中定义的事物的基本功能]
    (5)接口的多继承
    (6)接口的思想 : 好处
    1、接口的出现扩展了功能。
    2、接口其实就是暴漏出来的规则。
    3、接口的出现降低了耦合性,即设备与设备之间实现了解耦。

    package com.oracle.dome02;
    //比抽象类更抽象的类:接口
    //接口只能写抽象方法
    //接口中定义的变量有固定修饰符 : public static final 
    //static : 可以直接用类名.成员
    // final : 常量
    public interface Usb {
         int a = 1 ;
        public     abstract  void  open();
    }
    package com.oracle.dome02;
    //实现类:实现接口
    public class mouse implements Usb{
            public void open(){
                System.out.println("打开链接");
            }
    }

    建立测试类:

    package com.oracle.dome02;
    
    public class test {
            public static void main(String[] args) {
                mouse  m = new mouse();
                m.open();
            }
    }

    效果如下:

    三、接口和抽象类的区别:

    1.抽象类中可以有普通成员变量,接口中没有普通成员变量
    2.抽象类可以有构造方法,接口中不能有构造方法
    3.抽象类中可以包含非抽象的普通方法,接口中的所有方法必须都是抽象的,不能有非抽象的普通方法。
    4. 抽象类中可以包含静态方法,接口中不能包含静态方法
    5. 抽象类中的抽象方法的访问类型可以是 public,protected ,
    但接口中的抽象方法只能是 public 类型的,并且默认即为 public abstract 类型
    6. 一个类可以实现多个接口,但只能继承一个抽象类。
    7. 抽象类和接口中都可以包含静态成员变量,抽象类中的静态成员变量的访问类型可以任意,
    但接口中定义的变量只是public static final 类型,并且默认即为 public static final 类型。

    四、应用:

    ----------------------------------------------------------
    抽象类:犬
    public abstract class  犬{
        public abstract void   能吃();        
        public abstract void   能叫();
    
    }
    -----------------------------------------------------------
    接口:缉毒功能
    public  interface  缉毒{
        public  abstract void 缉毒();    
    }
    -------------------------------------------------------
    具体事物:缉毒犬
    public class  缉毒犬 extendsimplements 缉毒{
        public void 能叫(){};
        public void 能吃(){};
        puclic void 缉毒(){};
    
    }
    --------------------------------------------------------
    建立测试类 :
    public class test{
        public  static void main(String[] args){
            缉毒犬 缉毒犬一号 = new 缉毒犬();
            缉毒犬一号.能吃();
            缉毒犬一号.能叫();
            缉毒犬一号.缉毒();
        }    
    }
  • 相关阅读:
    如何使用android模拟器截图
    android SD卡文件的读写
    res/raw下的资源文件读写
    window 运行指令(1)
    javax.swing.JOptionPane.showMessageDialog() 方法
    Eclipse快捷键
    EditPlus怎样自动换行
    java的HashCode方法
    eclipse汉化全程
    (转载)jdbc事务处理
  • 原文地址:https://www.cnblogs.com/scw123/p/9678826.html
Copyright © 2011-2022 走看看