java笔记2.12

抽象类作形参和返回类型

根据抽象特性,其形参和返回值实际上都是抽象类的子类,而不是抽象类。
抽象类是无法实例化的,更不可能使用在参数和返回值
.
.
.
同理,接口也一样
抽象类做形参和返回类型

import MyPackage.test;

public class b {
    public static void main(String[] args) {
        c1 test1 = new c2();
        // 但其实际上,根据多态,test1会被换成c2类型
        // test1是c2类型,返回值和参数也是c2
        test1.function2(test1);
    }

}

abstract class c1 {
    abstract void function();

    abstract c1 function2(c1 n);
}

class c2 extends c1 {
    public void function() {
        System.out.println("这是方法");
    }

		// 参数是c1类型,抽象类型
    public c1 function2(c1 n) {
        n.function();
        // 返回的是父类,抽象类型
        return n;
    }
}

接口类型做形参和返回类型

import MyPackage.test;

public class b {
    public static void main(String[] args) {
        f1 t1 = new c1();
        t1.function(t1);
    }
}

interface f1 {
    abstract f1 function(f1 n);
    abstract void function2();
}

class c1 implements f1 {
    @Override
    public void function2() {
        System.out.println("这是实现接口方法");
    }
    public f1 function(f1 n) {
        n.function2();
        return n;
    }
}

内部类

在第一轮我们学习过
外部类,内部静态类,局部类,匿名类实现,函数式编程

  1. 内部类
    什么内部类,就是一个嵌套,注意一下俩类的内部成员访问权限
public class b {
    public class a {
    }
}

成员内部类(如上例)
局部内部类(方法中的类)

import javax.sound.midi.Soundbank;

public class b {
    public static void main(String[] args) {
        c2 t2 = new c2();
        t2.function();
    }

}

class c2 {
    public void function() {
        class c1 {
            void function() {
                System.out.println("局部内部类,这是方法内部类");
            }
        }
        System.out.println("这是一个方法");

        System.out.println("然后再调用其内部的类的方法");
        c1 t1 = new c1();
        t1.function();
    }
}

匿名内部类(归属于局部内部类)
.
.
.
结合多态特性,也可以使用对象保存
匿名的类,本质就是将该类继承

import javax.sound.midi.Soundbank;

public class b {
    public static void main(String[] args) {
        new b2() {
            public void function() {
                System.out.println("这是匿名内部类");
            }
        }.function();
    }
}

// 可以是类,接口,抽象类.....
class b2 {
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值