zoukankan      html  css  js  c++  java
  • 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();
        }
    }

    三、内部类

  • 相关阅读:
    poj1581
    poj3094
    poj2196
    poj1003
    poj2262
    poj1083
    poj3299
    poj2739
    poj1552
    js 获取元素高度和宽度
  • 原文地址:https://www.cnblogs.com/buchizaodian/p/9182955.html
Copyright © 2011-2022 走看看