1.接口
继上次总结,接口是由常量和抽象方法组成,但为了增强接口功能,在jdk1.8之后可以定义含方法体的默认方法,静态方法(版本1.9之后),私有方法,他们分别用defult,static,private修饰
2.内部类
成员内部类:就是类里面的一个普成员 外部类名.内部类名 对象名=new 外部类().new 内部类(); outer.Inner in=new outer().new Inner(); 静态内部类 外部类名.内部类名 对象名=new 外部类.内部类(); outer.Inner in=new outer.Inner(); 局部内部类 匿名内部类 是一种特殊的局部内部类。 示例:
Anmial dog = new Anmial(){
@Override
public void cry() {
System.out.println("小狗汪汪汪的叫");
}
};
3.枚举
是一种用enum定义的特殊的类,他的第一行必须是枚举对象。 示例代码: package com.itheima.demo2; //对传递的参数进行绝对限制
public enum demo2 {
BOY,GIRL
}
package com.itheima.demo2;
public class demo1 {
public static void main(String[] args) {
math(demo2.BOY);
}
public static void math(demo2 a){
switch (a){
case BOY:
System.out.println("武侠小说");
break;
case GIRL:
System.out.println("言情小说");
break;
}
}
}
4.泛型
自定义泛型类 格式:public class xxx <类型变量> {} 自定义泛型接口 格式:public interface xxx <类型变量> {} 自定义泛型方法:自定义方法的时候类型变量必须定义在,修饰符与返回值之间。 格式:public<类型变量>void xxx(){}
5.通配符
1.<?>代表可以接收任意类型变量 2.上限:?extends 使用泛型时,允许接受它及他的子孙类 3.下限:?super 使用泛型时,允许接受它及他的父类。
6.有关于泛型的面试题
1.泛型擦除机制:泛型只存在在编码阶段,等到编译为class文件之后,泛型会被擦除为Object类型。这样做的主要目的是为了节约内存。 2.不能接收基本数据类型:所有的java类都继承于Object这个类,基本类型不属于java类所以他也就跟Object没有任何关系。标签:java,进阶,自定义,demo2,面向对象,泛型,new,public,内部 From: https://blog.csdn.net/m0_75270036/article/details/141026602