# Inherit.jl

**URL:** <https://discourse.julialang.org/t/inherit-jl/99102>\
**Category:** Package Announcements\
**Tags:** package, announcement\
**Created:** [May 19, 2023, 9:47am UTC](https://discourse.julialang.org/t/inherit-jl/99102 "2023-05-19T09:47:01Z")\
**Posts on this page:** 1\
**Showing post:** 5

<div class="post-metadata">

**Author:** ![Kirby\_Zhang](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kirby_zhang/32/36204_2.png) [@Kirby\_Zhang](https://discourse.julialang.org/u/Kirby_Zhang)\
**Post date:** [May 19, 2023, 2:15pm UTC](https://discourse.julialang.org/t/inherit-jl/99102/5 "2023-05-19T14:15:37Z")

</div>

The main difference I can see is they don’t seem to verify method signatures. Their interface seems to be only checking for a function name?

Found this post about ObjectOriented.jl

> [@\[ANN\] ObjectOriented.jl (renamed from TyOOP.jl), complete OOP support](https://discourse.julialang.org/t/ann-objectoriented-jl-renamed-from-tyoop-jl-complete-oop-support/83911/18):
>
> This is a really cool package, thank you for sharing it. While I’m really not so keen on the whole OOP stuff, I do indeed think that type/field inheritance (like the example in this post) might be really nice for ABMs (my main field of research). So maybe this is something to try out in the future to see how well it works for my use case. slight_smile While reading through the docs, I’ve stumbled upon something that frankly bugs me a bit though. As outlined [here](https://suzhou-tongyuan.github.io/TyOOP.jl/dev/cheat-sheet-en/#.-Inheritance), regular type checks in Julia …

This problem is avoided in Inherit.jl,

```julia
a = Apple(1,2)
a isa Apple && a isa Fruit

```

```julia
true

```

Before I developed Inherit.jl I had looked at Classes.jl. One of the issues was they used a parallel type hierarchy to what the user actually typed. It seems ObjectOriented.jl has a similar problem. Inherit.jl uses native Julia type hiearchy. _It introduces no new types._ There is no dispatch overhead at all.

This also restricts the current system from having multiple inheritance. MI will use parameterized container types and introduce the `<--` operator. But the main object hierarchy is still the Julia one. MI introduces Traits that decorates on this hierarchy.

---

_[View the full topic](https://discourse.julialang.org/t/inherit-jl/99102)._
