阶段总结
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: 如果实现类实现了多个接口,而这些接口中同时定义了同名同参数的方法,那么就会把方法冲突,除非实现类重写此方法