extends和implements的区别

首先需要记住的是extends表示继承关系implements表示实现关系

那么extends用于哪些情形、implements又用于哪些情形呢?

 

extends:

子类(class) extends   父类(class)===>继承类只能是单继承,也就是如果父亲属于类(class),那么父亲只能有一个

类(class)/ 接口(interface)    extends     接口1(interface,接口2(interface===>继承接口可以是多继承,也就是如果父亲是接口(interface)那么可以有多个父亲 

 

 ps1: 这里子类继承父类的前提父类class不是final类

ps2:如果父类是抽象类,那么子类需要实现父类中的所有抽象方法,否则子类也将变成抽象类(实际上子类继承抽象父类的过程,也就是抽象父类的实例化的过程,因为抽象类不能直接被实例化,即不能通过new一个对象来产生,而是要借助于一个普通的类通过继承,实现所有该抽象类中的所有抽象方法来进行实例化;但是事实上也可以通过new来实例化抽象类,只是还需要借助于匿名内部类来实现

java中的匿名内部类总结

public class Test4 {
    public  abstract static class animal{
        public abstract void say();
    }

    public static void main(String[] args){
        //直接通过new一个抽象类来实例化
        //而这里相当于省略了创建子类继承进行实例化的步骤,也就是利用了匿名内部类实现实例化
        animal animal = new animal(){
            public void say(){
                System.out.println("miaomiao");
            }
        };
        animal.say();

    }
}

ps3:继承类虽然不能多继承,即一个子类不能有多个父亲,但是可以多重继承,即class A extends B{}    classB extends C{}

ps4:子类不能继承父类的private属性和方法

ps5:子类继承父类的方法时可以对父类的方法进行重写,这时候就需要注意重写的规则(参数个数、参数类型、返回类型和父类保持一致,同时子类重写方法的修饰符范围不能小于父类的修饰符)重写和重载

 

implements:

类(class) implements   接口1(interface),接口2(interface)==>一个类可以实现多个接口

ps1:实现一个接口需要实现接口中的所有方法

 

posted @ 2019-01-27 14:55  crr121  阅读(579)  评论(0编辑  收藏  举报