day13-面向对象(下)-2

1、abstract 能修饰哪些结构? 修饰以后,有什么特点?

(1)可以修饰类,该类为抽象类,不能被实例化。

(2)可以修饰方法,该方法为抽象方法,不能有方法体,只定义了一种功能的标准。

2、接口是否能继承接口? 抽象类是否能实现(implements)接口? 抽象类是否能继承非抽象的类?

接口可以继承接口

抽象类可以实现接口

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

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

public abstract class Person{
    abstract void eat();
} 

public class PersonTest{
	public static void main(String args[]){
        //匿名子类的对象
        new Person(){
            public void eat(){
                System.out.println("吃饭");
            }
        };
    }
}

4、抽象类和接口有哪些共同点和区别?

区别:

(1)抽象类用abstract关键字修饰,接口用interface关键字修饰

(2)继承抽象类用extends关键字,实现接口用implements关键字

(3)JDK1.8之前,接口中只能包含常量和抽象方法,JDK1.8之后,接口中还可以包含静态方法和默认方法,抽象类中可以包含属性、方法、构造器、代码块、内部类

(4)子类只能直接继承一个抽象父类,但是可以实现多个接口

共同点:

(1)抽象类和接口都不可以被实例化

5、如何创建静态成员内部类和非静态成员内部类的对象?

public class InnterClassTest{
    public static void main(String args){
        //创建静态成员内部类的对象
        InnterClassTest.AA aa = new InnterClassTest.AA();
        //创建非静态成员内部类对象
        InnterClassTest.BB bb = new InnterClassTest().new BB();
    }
    
    //静态成员内部类
    static class AA{
        
    }
    
    //非静态成员内部类
    class BB{
        
    }
    
}


posted @ 2023-01-04 09:27  huxingxin  阅读(19)  评论(0编辑  收藏  举报