Las interfaces de Kotlin

Este artículo está relacionado con las interfaces en Kotlin . En este artículo vamos a aprender acerca de las interfaces , cómo se implementan en Kotlin y cómo se diferencian de las interfaces en Java?

Requisito: class abstract en Kotlin

en Java que hemos estudiado class es una colección de métodos únicos interface. No puede contener cualquier función con la definición. Pero, Kotlin añade más funcionalidad a las interfaces por lo que nos permite añadir código en las interfaces. Sí, realmente podemos añadir código en las interfaces .

abstract pueden ser creados usando ‘Interface’ palabra clave.

interface twoWheeler{
fun getPrice(qt:Int) :Int// abstract method
}

Este interface contiene un método interface getPrice () . No hay necesidad de abstract palabra clave, ya que no se especifica de forma implícita.

En Kotlin podemos añadir código para las funciones miembro de class

interface twoWheeler{
fun getDeatils(){ //method with code
println("this is an interface ")
}
}

interfaces son nada sin la aplicación que deben ser implementadas por algunos abstract. Se implementan como como si las clases heredan utilizando dos puntos (:) símbolo.

class bajaj :twoWheeler{
override fun getPrice(qt: Int) :Int {
return qt*45000
}
}

Aquí, anulación palabra clave se utiliza para poner en práctica el método de interface y esto es obligatorio en Kotlin.

class puede contener propiedades, consulte el ejemplo

interface twoWheeler{
var price :Int
}

Si inicializamos el precio de la propiedad como,

var price_Int=45000   // this will produce errror

Propiedades necesita ser reemplazado en el sub interface como por la exigencia. Utilice anulación palabra clave que Interface.

class bajaj : twoWheeler{
override var price=45000
}

programa para implementar class en Kotlin

interface twoWheeler {
//method with code
fun getDeatils() {
println("This is an interface providing a method getPrice() which returns price as per quantity ")
}
var price: Int // property
fun getPrice(qt: Int): Int // abstract method
}
class bajaj : twoWheeler {
override var price = 45000
override fun getPrice(qt: Int): Int {
return qt * price
}
}
class hero : twoWheeler {
override var price = 50000
override fun getPrice(qt: Int): Int {
return (qt * price + 4500)
}
}
fun main(args: Array<String>) {
var platina = bajaj()
platina.getDeatils()
println("Enter quantity for platina : ")
var qt = readLine()!!.toInt()
print(" Your Price : ")
println(platina.getPrice(qt))
var passion = hero()
println("Enter quantity for passion : ")
qt = readLine()!!.toInt()
print(" Your Price : ")
println(passion.getPrice(qt))
}

salida

This is an interface providing a method getPrice() which returns price as per quantity 
Enter quantity for platina :
1
Your Price : 45000
Enter quantity for passion :
1
Your Price : 54500

A través de las interfaces también podemos lograr la herencia múltiple

bien la aplicación de múltiples interfaces de un problema puede ocurrir que varias interfaces pueden contener mismo nombre de función y el compilador podría confundir al llamar a ellos. Así que para eliminar la ambigüedad cuando se llama a la función con el mismo nombre, tenemos que utilizar la palabra clave for continuación escuadras “& lt; interfaceName & gt;” y luego función. Como se ve en debajo de ejemplo.

programa para implementar interface múltiple en Kotlin

interface A {
fun display() {
println("this is interface A")
}
}
interface B {
fun display() {
println("this is interface B")
}
}
class C : A, B {
override fun display() {
super<A>.display()
super< B>.display()
}
}
fun main(args: Array<String>) {
var ob = C()
ob.display()
}

salida

this is interface A
this is interface B


Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *