未支付网站建设挂哪个科目,南京网站设公司,邢台市信息产业集团有限公司,做站群一个网站多少钱刷题情况#xff1a; 蓝桥杯刷题#xff1a;
Java学习情况: 抽象类#xff1a;如果将子类中抽取的共性行为#xff08;方法#xff09;#xff0c;子类的执行不一样的时候 #xff08;通俗一点来说#xff0c;就是无法找到一个万能的方法体供子类使用#xff0c;但这…刷题情况 蓝桥杯刷题
Java学习情况: 抽象类如果将子类中抽取的共性行为方法子类的执行不一样的时候 通俗一点来说就是无法找到一个万能的方法体供子类使用但这个行为是一样例如狗吃骨头羊吃艹这个行为是一致的但父类的方法体不能够万能的描述这俩个动物的吃的行为也就是确定不了方法体将这个方法定义为抽象方法。 当一个类中存在了抽象方法的时候那这个类一定是抽象类用abstract修饰。 但是抽象类中允许存在普通方法。总结一下就是存在抽象方法一定是抽象类抽象类不一定有抽象方法。 抽象类不允许创建实例也就是不允许创建对象。 抽象类的子类要么重写抽象类的所有方法要么这个类继续为抽象类。 抽象类中允许存在抽象方法。 接口和抽象类的区别 意义上的不同 接口体现的是一种规范类似于整个系统的总纲。 抽象类体现的是一种模板式设计抽象类可以被当作系统实现产品的中间产品可以参与完成多个不同的最终产品。 语法上的不同 接口里面只允许存在抽象方法静态方法和默认方法default不能为普通方法提供方法实现 而抽象类中可以存在普通方法。 接口里面只能定义静态常量public static final 而抽象类可以有普通成员变量也可以有静态常量。 接口没有构造方法。 抽象类有构造方法。 接口不能包含初始化块。 抽象类可以包含初始化块。 内部类简单来说就是在一个类里面的类 成员内部类一个类中和成员变量处于同一位置的类 非静态内部类特殊的成员内部类有static修饰 静态内部类特殊的成员内部类有static修饰 局部内部类定义于方法中的类用处不大 匿名内部类重点 内部类可以直接访问外部类的成员变量无论是非私有还是私有类比成员变量可以访问成员变量无论是私有还是非私有但是外部类不能直接访问内部类需要创建内部类的对象才可以访问。 外部类静态成员不能访问非静态的内部类 非静态内部类里不允许定义静态成员静态方法静态初始化块静态变量 但是静态内部类里面可以有非静态内部类和静态内部类 这里补充static的一个知识static的作用是把类成员变成和类相关而不是实例相关static修饰的成员属于整个类而不是单个对象而外部类的上一级程序单元是包所以不可以使用static修饰内部类可以使用static修饰使得内部类变得和外部类相关。 静态内部类不能访问外部类的实例成员只能访问外部类的静态成员。 匿名内部类 匿名内部类不能是抽象类因为匿名内部类在创建的时候就创建了匿名内部类的对象因此不允许将匿名内部类定义成抽象类抽象类不能创建实例只能作为父类去派生子类 匿名内部类不能定义构造方法因为匿名内部类没有类名所以无法定义构造方法但可以定义初始化块可以通过实例初始块来完成构造方法需要完成的事情。 最常用的创建匿名内部类的方式是需要创建某个接口类型的对象。 创建匿名内部类的时候必须实现接口或抽象父类里的所有抽象方法如果有需要也可以重写父类中的普通方法 枚举类 package exerse;public enum SeasonEnum {Spring,Summer,Fall,Winter;
} 枚举常量序数从0开始 枚举类默认继承了java.lang.Enum类而不是object类因此枚举类不能显式继承其他父类 使用enum类定义非抽象的枚举类会默认使用final修饰因此枚举类不能派生子类。 枚举类的构造器只能使用private访问控制符如果省略了构造器构造方法的访问控制符那么默认使用private修饰如果强制指定访问控制符那么只能指定private控制符 注意枚举类的实例必须在枚举类的第一行显式列出否则这个枚举类永远都不能产生实例。这些实例系统会自动添加静态常量的修饰符public static final。 枚举类默认提供了一个values方法该方法可以很方便的遍历所有的枚举值。、 代码演示 package exerse;public class EnumTest {public void judge(SeasonEnum s){switch (s){case Spring - System.out.println(春天);case Summer - System.out.println(夏天);case Fall - System.out.println(秋天);case Winter - System.out.println(冬天);}}public static void main(String[] args) {for (SeasonEnum s:SeasonEnum.values() ){System.out.println(s);}EnumTest pnew EnumTest();p.judge(SeasonEnum.Spring);}
}枚举类和普通的类区别不大差别在于创建枚举类对象不能随意创建创建的实例只能是枚举值。列出枚举值的时候可以不用显示调用构造器不用使用new关键字就可以船舰枚举类对象。 在枚举类中添加私有构造方法列出枚举值的时候传入参数好处更加安全成员变量都不可随意改变。 枚举类和普通类一样也可以实现一个或者多个接口实现接口和普通类一致 不是所有的枚举类都为final修饰当枚举类的内部存在抽象方法的时候这个枚举类就是用abstract所修饰不是使用final修饰。这个时候存在派生子类。