override ?

    xiaoxiao2025-01-18  5

    // ----------------------------------------------------------------------------- class A { def f(a:Int):Int = a + 3 } class B extends A{ val f = 2 } scala> val b= new B b: B = B@6990bf8d scala> b.f res1: Int = 2 scala> b.f(2) res2: Int = 5 // ----------------------------------------------------------------------------- class A { val f = 2 } class B extends A{ def f(a:Int):Int = a + 3 } scala> val b= new B b: B = B@6990bf8d scala> val a:Int = b.f a: Int = 2 scala> b.f(2) res1: Int = 5 // ----------------------------------------------------------------------------- class A { val f:(Int) => Int = (a:Int) => a - 3 } class B extends A{ def f(a:Int):Int = a + 3 } scala> val b= new B b: B = B@29a224bb scala> b.f(2) res1: Int = 5 scala> val a:(Int)=>Int = b.f <console>:14: error: ambiguous reference to overloaded definition, both method f in class B of type (a: Int)Int and value f in class A of type => Int => Int match expected type Int => Int val a:(Int)=>Int = b.f ^ // ----------------------------------------------------------------------------- class A { val f:(Int) => String = (a:Int) => a.toString } class B extends A{ def f(a:Int):Int = a + 3 } scala> val b = new B b: B = B@63e6dcda scala> b.f <console>:15: error: ambiguous reference to overloaded definition, both method f in class B of type (a: Int)Int and value f in class A of type => Int => String match expected type ? b.f ^ scala> b.f(2) res1: Int = 5 scala> val a : (Int)=> String = b.f a: Int => String = <function1> scala> a(3) res2: String = 3 // -----------------------------------------------------------------------------
    转载请注明原文地址: https://ju.6miu.com/read-1295610.html
    最新回复(0)