Превладавање у Питхон-у - Функција и правила прегласавања

Преглед садржаја:

Anonim

Увод у превладавање у Питхон-у

У Оверридинг у Питхон-у, објектно оријентисано програмирање, класа која се у почетку декларира назива се надређена класа. онај који је декларисан након овога назива се поткласа или дечија класа. У техници Оверридинг у Питхон-у, подразреду је дата посебна врста имплементације у којој је надређени елемент класе надјачан елементом из подразреда. Према овој техници ентитет деклариран у поткласи мора бити сличан у називу, параметру, аргументима с надређеном класом. Тако да се у таквом случају каже да подкласа надјачава надређену класу.

Функција Оверридинг у Питхон-у

Главна врста прегласавања у питхон-у је метода оверридинг. овде ће метода декларирана у родитељској класи надјачати у подразреду. Синтаксуални приказ прегласавања метода приказан је доле,

Синтакса:

class parent_class:
def overriding_method(self):
class Child_class:
def overriden_method(self):
obj1 = parent_class()
obj2 = Child_class()
obj1.overriding_method()
obj2.overriden_method()

Пример # 1

class parent_class
def __init__(self, Lower_Case, Upper_Case):
self.Lower_Case = Lower_Case
self.Upper_Case = Upper_Case
def attribute_finder_method(self):
print('- - - - - - Overriding method output - - - - -')
print(' - - - - PRINT ON ALPHABETS - - - - - ')
print(' Collection used for variable1 : ', type(Lower_Case))
print(' Collection used for variable2 : ', type(Upper_Case))
print(' Lower case alphabets : ', len(Lower_Case), '--- Values -->', Lower_Case)
print(' Upper case alphabets : ', len(Upper_Case), '--- Values -->', Upper_Case)
print(' ')
print(' ')
print(' ')
class child_class:
def __init__(self, Prime_Numbers):
self.Prime_Numbers = Prime_Numbers
def attribute_finder_method(self):
print('- - - - - - Overriden method output - - - - -')
print(' - - - - PRINT ON PRIME NUMBERS - - - - - ')
print(' Collection used for variable3 : ', type(Prime_Numbers))
print(' Lower case alphabets : ', len(Prime_Numbers), '--- Values -->', Prime_Numbers)
Lower_Case = ( ' a ', ' b ', ' c ', ' d ', ' e ', ' f ', ' g ', ' h ', ' i ', ' j ', ' k ', ' l ', ' m ', ' n ', ' o ', ' p ', ' q ', ' r ', ' s ', ' t ', ' u ', ' v ', ' w ', ' x ', ' y ', ' z ' ) Upper_Case = ( ' A ', ' B ', ' C ', ' D ', ' E ', ' F ', ' G ', ' H ', ' I ', ' J ', ' K ', ' L ', ' M ', ' N ', ' O ', ' P ', ' Q ', ' R ', ' S ', ' T ', ' U ', ' V ', ' W ', ' X ', ' Y ', ' Z ' ) Prime_Numbers = ( ' 1 ', ' 3 ', ' 5 ', ' 7 ', ' 11 ', ' 13 ', ' 17 ', ' 19 ', ' 29 ', ' 31 ', ' 37 ', ' 41 ', ' 43 ', ' 47 ', ' 53 ', ' 59 ', ' 61 ', ' 67 ', ' 71 ', ' 73 ', ' 79 ', ' 83 ', ' 89 ', ' 97 ') object1 = parent_class(Lower_Case, Upper_Case)
object1.attribute_finder_method()
object2 = child_class(Prime_Numbers)
object2.attribute_finder_method()

Излаз:

Објашњење:

  • Горњи програм користи три листе од којих две држе мала и велика слова, а трећа садржи вредности највећег броја од 0 до 100.
  • функционалност програма дизајнирана је на такав начин да се очекују атрибути и садржај ових листа. У том случају се у ту сврху користе две класе. Родитељска класа обрађује све абецеде колекције док дечија класа обрађује збирку правих бројева.
  • Можемо приметити да је функција 'аттрибуте_финдер_метход ()' декларисана као део обе класе.у родитељској класи ова метода држи обраду атрибута за абецеде, а у подређеној класи држи обраду атрибута за једноставне бројеве. значајна спецификација је да је функција функције иста у обје деклариране класе.
  • Дакле, када је предмет инстанциран за родитељску класу, тада ће овај објект бити способан да покрене функцијски позив за методу у родитељској класи, а са друге стране, објект инстанциран за подређену класу моћи ће покренути позив функције за методу у подређеној класи . То значи када је 'објецт2. аттрибуте_финдер_метход () 'се зове ово позива методу за подређену класу чак и у присуству исте методе у родитељској класи. Дакле, ово јасно оправдава прегласавање методе надређене класе над надређеном класом декларирано асимилацијом чињенице да је подразреду дата одређена врста имплементације у којој је надређени елемент класе надјачан елементом подкласе.

Пример бр. 2

#!/usr/bin/evn python
# Define a class as 'Individual' #
class Individual:
# Constructor#1 #
def __init__(self):
self.Student_Name = input( " Enter Name of the student : " )
self.Student_age = input( " Enter age of the student : " )
self.Student_gender = input( " Enter gender of the student : " )
# Method
def display(self):
print( " \n \n Enter Name of the student : ", self.Student_Name )
print( " Enter age of the student : ", self.Student_age )
print( " Enter gender of the student : ", self.Student_gender )
# Define a class as 'Evaluated_Marks' #
class Evaluated_Marks:
# Constructor#2 #
def __init__(self):
self.stuClass = input( " Class of the student : " )
print( " Evaluated Marks per subject : " )
self.literature = int(input( " Mark in Literature subject : " ))
self.math = int(input( " Mark in Math subject : " ))
self.biology = int(input( " Mark in Biology subject : " ))
self.physics = int(input( " Mark in Physics subject : " ))
# Method
def display(self):
print( " Study in : ", self.stuClass)
print( " Total Evaluated_Marks : ", self.literature + self.math + self.biology + self.physics)
class student(Individual, Evaluated_Marks):
def __init__(self):
# Call ' Individual ' super class constructor
Individual.__init__(self)
# Call ' Evaluated_Marks ' superclass constructor
Evaluated_Marks.__init__(self)
def result(self):
# Call method of class 'Individual'
Individual.display(self)
# Call method of class 'Evaluated_Marks'
Evaluated_Marks.display(self)
# Objects of class 'student' #
Student1 = student()
Student2 = student()
print(" ")
print( "Note: The instances get initialized with the given values Successfully " )

Излаз:

Објашњење:

Овде се метода дисплаи () наслеђује и надјачава чиме се поново постиже концепт прегласавања метода.

Правила прегласавања у Питхон-у

  • Превазиђена метода мора бити истог имена као и метода наведена у родитељској класи
  • статичке методе се не могу надјачати
  • Коначне методе се не могу превладати
  • Синхронизовани модификатор не утиче на прописе прегласавања.

Закључак

Концепт превладавања одражава вишеструке имплементације исте класе. овде синхронизовани модификатор не утиче на прописе прегласавања. Пре тога, она дефинише веома детаљно понашање укључене класе. ови случајеви чине концепт прегласавања веома значајан у свету питона.

Препоручени чланци

Ово је водич за Превладавање у Питхон-у. Овде смо расправљали о уводу, функцији прегласавања и правилима прегласавања на Питхон-у. Можете и да прођете кроз друге наше предложене чланке да бисте сазнали више -

  1. Особине Питхон-а
  2. Прегласавање у ЈаваСцрипт-у
  3. ПХП Цомпилер
  4. Сесије у ПХП-у
  5. Водич за статичку методу у ПХП-у
  6. Примери ЈаваСцрипт статичке методе