• java 抽象类、接口、内部类


     一、抽象类

    抽象类不能实例化,

    抽象类中可以包含不带方法体的方法,可以有带方法体的方法。

    抽象类中不带方法体的方法,子类继承后必须要重写,

     抽象类可以有构造方法

    public abstract class Person {
        //抽象方法
        public abstract void say();
    
        public  void ok(){
            System.out.println("普通方法");
        }
    }
    public class Student extends Person  {
        @Override
        public void say() {
            System.out.println("student-say");
        }
    }

    二、接口

    1.一般

    接口的方法默认是公有的抽象方法,不能带方法体

     完全版

    public interface Person {
        public abstract void say();
    }

    可以简写

    public interface Person {
        void say();
    }

    实现时必须要覆盖所有的抽象方法

    public class Student implements  Person  {
        @Override
        public void say() {
            System.out.println("student-say");
        }
    }

    2.java7增加常量

     常量是静态的

    public interface Person {
        public static final int A = 10;
    }

    简写

    public interface Person {
        int A = 10;
    }

    调用

    public class Test {
        public static void main(String[] args) {
            System.out.println(Person.A);
        }
    }

    3.java8接口默认方法和静态方法

    接口的默认方法,子类可以不重写

    public interface Person {
        //默认是public的可以不加
        default void say() {
            System.out.printf("person-say");
        }
    }
    public class Student implements  Person  {
    
    }
    ---------------
    public class Test {
        public static void main(String[] args) {
            Student p=new Student() ;
            p.say();
        }
    }

    静态方法

    子类可以重写,调用时不实例化

    public interface Person {
        static void say() {
            System.out.printf("person-say");
        }
    }
    ------------------------
    public class Test {
        public static void main(String[] args) {
            Person.say();
        }
    }

    4.java9接口私有方法

     接口私有方法只能在本接口中使用

    public interface Person {
        default void say() {
            System.out.println("person-say");
            ok();
        }
        private void ok(){
            System.out.println("aa");
        }
    }
    ----------------
    public class Student implements  Person  {
    
    }
    --------------------
    public class Test {
        public static void main(String[] args) {
            Student p=new Student() ;
            p.say();
        }
    }

    三、内部类

  • 相关阅读:
    软件工程师的属性与发展
    欢迎使用CSDN-markdown编辑器
    hdu 5446 lucas+crt+按位乘
    poj 2891 模数不互质的中国剩余定理
    3037 插板法+lucas
    poj 1006中国剩余定理模板
    codeforce E
    UVA10820 send a table
    UVA1635 Irrelevant Elements
    uva 10375 Choose and Divide
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/9182955.html
Copyright © 2020-2023  润新知