java进阶面向对象总结二

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没有任何关系。
  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值