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();

    输出:

  • 相关阅读:
    Broadcasting
    TensorFlow2-维度变换
    TensorFlow2教程(目录)
    SQL Server 加密层级
    Windows 打开防火墙上的指定端口
    SQL Server 查看对象之间的引用关系
    SQL Server 查看实例配置情况的 2 方法
    Linux 快捷键
    MYSQL 二进制日志
    SQL Server 存储过程自启动
  • 原文地址:https://www.cnblogs.com/OSKnown/p/8692688.html
Copyright © 2011-2022 走看看