阶段总结

 

1:abstract 能修饰那些结构? 修饰以后,有什么特色?

abstract 可以修饰类和方法.

修饰的类就是抽象类,
        类不能被实例化, 提供子类让子类去实例化. 
         子类继承后需要重写这个类中的所有抽象方法,否则继承类就是一个抽象类
修饰方法, 抽象方法
      此方法只可以声明不可以有方法体,只定义了功能标准具体的实现需要子类去实现
       这个方法所在的类也必须是抽象的

 

2: 接口是否能继承接口呢?抽象类是否能实现(implements) 接口? 抽象类是否可以继承非抽象的类?

 

接口可以继承接口, 

抽象类也可以实现接口, 因为接口内的方法也是抽象方法所以都是可以实现的

抽象类是可以继承非抽象的类

 

3: 声明一个抽象类,包含抽象方法. 测试类中创建一个继承抽象类的匿名子类对象

abstract  class LiTestFour{
    public abstract  void  methodfour();
}


    public static void main(String[] args) {
        LiTestFour liTestFour = new LiTestFour() {
            @Override
            public void methodfour() {
                System.out.println("匿名子类对象的方法");
            }
            
        };
        
        liTestFour.methodfour();
    }

 

 

3 抽象类和接口有哪些异同点?

不同点:

    抽象类                                                   接口

    内部方法可以有方法体                             方法不可以有方法体

   有构造器                                               没有构造器

    单继承                                                 多继承

相同点: 都不能实例化 , 都可以被继承,

 

 

 

 

4: 如何创建静态成员内部类和非静态成员内部类

类: 
Person    static Dog  Bird

静态成员内部类
Person.Dog dog = new Person.Dog();

非静态成员内部类

Person  person = new Person();  先创建外部类对象

person.Bird bird = person.new.Bird();

 

5: java8中接口定义的新规范

1: 接口中定义的静态方法,只能通过接口.方法来调用

2: 通过实现类的对象,可以调用接口中的默认方法
    如果实现类重写了接口中的默认方法,调用的是实现类重写后的方法


3: 如果子类(实现类)继承了父类和实现的接口,同时声明了同名同参数的方法,那么就优先执行父类中的方法,遵循类优先原则

4: 如果实现类实现了多个接口,而这些接口中同时定义了同名同参数的方法,那么就会把方法冲突,除非实现类重写此方法

 

posted @ 2019-10-25 11:52  可爱的红领巾  阅读(141)  评论(0编辑  收藏  举报