Intereting Posts
Kotlin JavaScript для файла описания TypeScript Как я могу отобразить его значение в коде .parseList {DayForecast (HashMap (it))} в Android Studio 3.0? Синтаксис Kotlin для наблюдателя LiveData? Расчет спящего гиберната @Formula Создайте класс POJO для Kotlin Котлин. Какой способ инициализации прав? Возможно ли сделать фон макета активности прозрачным в kotlin android Как я могу скрыть пароль с помощью Anko? Вызов подпрограмм в Котлине Android Studio 3.0 Неразрешенная ссылка: Поддерживаемые языки для класса AIConfiguration в Dialogflow (api.ai) Как загрузить фрагмент в BottomNavigationView в зависимости от выбранного элемента? Kotlin смешивается с ошибкой Java: не удается найти символ Kotlin добавляет пользовательский прослушиватель для доступа к виджетам на Android Преобразование объекта с полями с нулевым значением в объект с полями, не допускающими нулевое значение, или null Как заставить безопасных строителей Kotlin работать в Scala?

Приведение не может быть успешным

Я новичок в Котлине, и сейчас я изучаю концепцию ООП

Я пытаюсь сделать бросок с этим кодом, но я столкнулся с ошибкой:

open class Operations1(){ open fun sum(n1:Int , n2:Int):Int{ return n1+ n2 } fun sub(n1:Int , n2:Int):Int{ return n1- n2 } } class multiOperations1():Operations(){ override fun sum(n1:Int , n2:Int):Int{ return n1+ n2 +5 } fun mul(n1:Int , n2:Int):Int{ return n1* n2 } fun div(n1:Int , n2:Int):Int{ return n1/ n2 } } fun main(args:Array<String>){ var oper = Operations() var inlit = multiOperations1() as Operations1 println("Enter first number") var n1:Int = readLine()!!.toInt() println("Enter Second Number") var n2:Int = readLine()!!.toInt() var sum = inlit.sum(n1 , n2) var sub = inlit.sub(n1 , n2) println("Sum: " + sum) println("Sub: " + sub) } 

Снимок экрана кода

Это снимок экрана кода

ошибка:

Это ошибка, с которой моя программа

    Кажется, что у вас есть класс Operations и Operations1 . Класс multiOperations1 наследует от Operations вместо Operations1 , поэтому вы не сможете передать его в Operations1 (если только Operations является подклассом Operations1 ).

    Я предполагаю, что вы хотели наследовать от Operations1, а именно:

     class multiOperations1(): Operations1() { ... } 

    Замечание о условностях: имена классов в Котлине обычно следуют соглашениям Java и используют верхний случай верблюда, поэтому вместо этого вы, вероятно, должны назвать свой класс MultiOperations1 .

    Либо вы можете использовать –

      var inlit = multiOperations1() as Operations 

    Вы можете придать производному классу родительский класс. В вашем случае класс multiOperations1 имеет родительский класс Operations .

    Просто предложение начнет вам название класса, например multiOperations1 из заглавной буквы.