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

    抽象类:

    1、抽象类的方法可以不包含抽象方法,抽象方法所在的类一定是抽象类

    2、抽象类的抽象方法只定义,不实现,由继承他的子类来实现,如果子类也是抽象类,则可以也不实现,反之子类必须实现父类的抽象方法

    3、抽象方法不能是private,不然子类没办法访问的

    4、抽象类记得不能实例化对象来访问

    1     public abstract class AbsDemo{
    2         public abstract void AbsDemo1();
    3     }
    4     public class AbsDemoZL extends AbsDemo{
    5         public void AbsDemo1(){
    6             System.out.println("111");
    7         }
    8     }

    接口:

    1、接口没有构造函数

    2、接口中的变量会被隐式地指定为public static final变量

    3、按道理是这样:接口中的方法会被隐式地指定为public abstract方法且只能是public abstract方法(得手动在方法前边加defaulet关键字),其他的会报错,但是我试了在接口声明static方法,并且实现,并没有报错,不知道为什么(最好接口里面只定义,不要写实现之类的

     1     public interface InterDemo
     2     {
     3         public abstract  void InterFunc();
     4         public static void InterDemo()
     5         {
     6             System.out.println("InterDemo1");
     7         }
     8     }
     9     public static abstract class InterDemoZL implements InterDemo
    10     {
    11 
    12     }
    13     public static class  InterDemoZZL extends InterDemoZL
    14     {
    15         public  void InterFunc(){
    16             System.out.println("InterDemo");
    17         }
    18         public static void Prin(){
    19             System.out.println("Prin");
    20         }
    21     }

    Main函数

    1         InterDemoZZL zl = new InterDemoZZL();
    2         zl.InterFunc();
    3         InterDemoZZL.Prin();

    4、一个类可以继承多个接口

     1     public interface InterDemo
     2     {
     3         public abstract  void InterFunc();
     4         public default void InterDemo() //default关键字代表类型是public abstract
     5         {
     6             System.out.println("InterDemo1");
     7         }
     8     }
     9     public interface InterDemo2
    10     {
    11         public default void InterDemo2()
    12         {
    13             System.out.println("InterDemo2");
    14         }
    15     }
    16     public static abstract class InterDemoZL implements InterDemo
    17     {
    18 
    19     }
    20     public static class  InterDemoZZL extends InterDemoZL implements InterDemo2,InterDemo
    21     {
    22         public  void InterFunc(){
    23             System.out.println("InterDemo");
    24         }
    25     }

    Main函数:

    1         InterDemo zl = new InterDemoZZL();
    2         zl.InterDemo();
    3         InterDemoZZL zzl = new InterDemoZZL();
    4         zzl.InterFunc();
    5         InterDemo2 zl2 = new InterDemoZZL();
    6         zl2.InterDemo2();

    输出:

  • 相关阅读:
    友盟上报 IOS
    UTF8编码
    Hill加密算法
    Base64编码
    Logistic Regression 算法向量化实现及心得
    152. Maximum Product Subarray(中等, 神奇的 swap)
    216. Combination Sum III(medium, backtrack, 本类问题做的最快的一次)
    77. Combinations(medium, backtrack, 重要, 弄了1小时)
    47. Permutations II(medium, backtrack, 重要, 条件较难思考)
    3.5 find() 判断是否存在某元素
  • 原文地址:https://www.cnblogs.com/OSKnown/p/8692688.html
Copyright © 2011-2022 走看看