美文网首页
抽象、接口

抽象、接口

作者: Yanl__ | 来源:发表于2019-11-20 20:51 被阅读0次

    1.抽象类与抽象方法
    2.接口

    1.抽象类与抽象方法

    1.1 抽象方法
    使用abstract修饰的方法,没有方法体,只有声明。定义的是一种规范;告诉子类必须要给抽象方法提供具体的实现。
    1.2 抽象类
    包含抽象方法的类就是抽象类。(抽象类中可以有自己的方法,但是接口中不行,接口中只能有抽象方法)抽象类中自己的方法可以通过继承给子类调用。

    1.有抽象方法的类只能定义为抽象类
    2.抽象类不能实例化,既不能用new来实例化抽象类(抽象类中的自己的方法可以给子类调用)
    3.抽象类可以包含属性、方法、构造方法。但是构造方法不能用来new实例,只能用来被子类调用
    4.抽象类只能用来被继承
    5.抽象方法必须被子类实现

    abstract class AnimalClass{
        abstract public void shot();
        public void run(){
            System.out.println("running");
        }
    }
    class Pig extends AnimalClass{
    
        @Override
        public void shot() {  // 抽象方法被子类实现
            System.out.println("Pig 也会叫");
        }
    }
    public class TestAbstract {
        public static void main(String[] args) {
            AnimalClass p1 = new Pig();
            p1.shot();  
            p1.run();  // 抽象类中的方法可以被子类调用
        }
    }
    

    2.接口

    2.1 接口与抽象类的区别
    抽象类还提供某些具体实现,接口不提供任何实现;接口中的方法全都是抽象方法。接口是完全面向规范的,规定了一批类具有公共方法规范。

    1.普通类:具体实现
    2.抽象类:具体实现,规范(抽象方法)
    3.接口:规范

    nterface AnimalClass{
        void shot();  // 只能定义规范
    }
    class Pig implements AnimalClass{
    
        @Override
        public void shot() {  // 必须实现接口中的抽象方法
            System.out.println("Pig 也会叫");
        }
    }
    

    2.2 使用方法

    [访问修饰符]  interface 接口名   [extends  父接口1,父接口2…]  {
    常量定义;  
    方法定义;
    }
    

    1.子类通过implements来实现接口中的规范
    2.接口不能创建实例,但是可用于声明引用变量类型
    3.一个类实现类接口,就必须实现接口中所有的方法,并且这些方法只能是public的
    4.接口可以多继承
    5.接口中的属性只能是常量;总是public static final修饰,不写也是这个修饰。
    6.接口中的方法只能是 public abstract,省略也是

    相关文章

      网友评论

          本文标题:抽象、接口

          本文链接:https://www.haomeiwen.com/subject/cdgoictx.html