-
抽象类和抽象方法
(1) 简述抽象方法的特征 -
抽象类不可以创建对象
-
抽象类可以创建对象(提供给子类调用)
-
抽象类可以包含的成员:成员变量、成员方法、静态方法、构造方法、final修饰的方法(只能被子类调用不能被重写)
-
抽象方法不允许有方法体,只能以分号“;”结尾
-
抽象方法只能声明在抽象类中(含有抽象方法的类必须是抽象类)
-
抽象类中可以含有0个或者多个抽象方法
-
抽象方法必须被子类实现
-
如果子类不能实现父类中的抽象方法,那么子类也必须是抽象类
总结:Asbtract可以修饰类和方法
(1) 什么情况下使用抽象方法?
父类的名称比较抽象、创建的类无意义
- 接口的详解
接口中不能定义构造方法;
Interface是一种数据类型,引用数据类型
(1) 接口中可以包含哪些内容? - 抽象方法
- 非抽象方法 public default void method(){}(JDK1.8新特性,必须使用default关键字)
- 属性 (public static final)常量
对比:抽象类和接口对比
public abstract class MyClass {
Public static final String aa=”张三”;
public abstract void show();
public abstract String fun();
public abstract int [] method();
}
可以改成如下代码:
public interface MyInterface {
String aa=”张三”;
void show();
String fun();
int [] method();
}
(1) 接口和类的关系?
- 类去实现接口中的抽象方法,implements
- 一个存在继承和实现关系时,先继承extends再implements
- 如果继承的父类与接口中有相同的方法,子类会优先实现父类中的方法
- 如果继承的父类与接口中有同名的方法,要求父类与接口中构成方法的重载
- 使用接口的意义
(1) 接口有哪些特征? - 接口的传递性
- 接口的继承性(多继承)
例:interface InterfaceC extends InterfaceB,InterfaceA{}
(2) 使用接口实现多态的步骤?
-
编写接口
-
实现类实现接口中的方法
-
接口类型 new实现类对象
-
内部类详解
(1) 内部类有哪些特点? -
内部类作为外部类的成员,可以直接访问外部类的成员(包括private 成员),反之不行
-
内部类作为外部类的成员,可声明private、默认的、protected、public
-
内部类的成员只有在内部类的范围内有效
-
内部类在外部类定义了不可访问的属性。这样就在外部类中·实现了比外部类的private还小的访问权限
内部类的优缺点:
优点:内部类可以直接访问外部类的私有属性
缺点:破坏了类的结构
(2) 内部类可以分哪几类? -
成员内部类()
-
静态内部类(a.不允许访问外部类的非static属性、b.内部类的方法为static方法,那么内部类也必须是静态的)
-
匿名内部类