Estrogen receptors (ERs) are a group of proteins found inside and on cells. They are receptors that are activated by the hormone estrogen (17β-estradiol). Two classes of ER exist: nuclear estrogen receptors (ERα and ERβ), which are members of the nuclear hormone family of intracellular receptors, and membrane estrogen receptors (mERs) (GPER (GPR30), ER-X, and Gq-mER), which are mostly G protein-coupled receptors. This article refers to the former (ER).
Once activated by estrogen, the ER is able to translocate into the nucleus and bind to DNA to regulate the activity of different genes (i.e. it is a DNA-binding transcription factor). However, it also has additional functions independent of DNA binding.
There are two different forms of the estrogen receptor, usually referred to as α and β, each encoded by a separate gene (ESR1 and ESR2, respectively). Hormone-activated estrogen receptors form dimers, and, since the two forms are coexpressed in many cell types, the receptors may form ERα (αα) or ERβ (ββ) homodimers or ERαβ (αβ) heterodimers. Estrogen receptor alpha and beta show significant overall sequence homology, and both are composed of five domains (listed from the N- to C-terminus; amino acid sequence numbers refer to human ER):(A-F domain)
In programming language theory, subtyping (also subtype polymorphism or inclusion polymorphism) is a form of type polymorphism in which a subtype is a datatype that is related to another datatype (the supertype) by some notion of substitutability, meaning that program elements, typically subroutines or functions, written to operate on elements of the supertype can also operate on elements of the subtype. If S is a subtype of T, the subtyping relation is often written S <: T, to mean that any term of type S can be safely used in a context where a term of type T is expected. The precise semantics of subtyping crucially depends on the particulars of what "safely used in a context where" means in a given programming language. The type system of a programming language essentially defines its own subtyping relation, which may well be trivial.
Due to the subtyping relation, a term may belong to more than one type. Subtyping is therefore a form of type polymorphism. In object-oriented programming the term 'polymorphism' is commonly used to refer solely to this subtype polymorphism, while the techniques of parametric polymorphism would be considered generic programming.