Section 7 - 8 polymorphsim
来源:互联网 发布:命中注定我爱你 知乎 编辑:程序博客网 时间:2024/05/18 10:34
Inheritance:
Members of a class: instance variables and methods.
Subclass extends the superclass. The subclass inherits from the superclass.
Instance variables are not overridden.
The lowest method in the inheritance tree wins.
IS-A relationship, extends, implements.
HAS-A relationship.
A subclass inherits all public instance variables and methods of the superclass, but not the private instance variables and methods.
Polymorphism:
1. Reference type can be a superclass of the actual object type.
Animal a = new Dog();
2. Polymorphic arrays.
Animal[] a;
3. Polymorphic arguments and return types.
public void takeAnimal(Animal animal);// can take a Dog as arguments.
Non-extensive class:
1. non-public class can be subclassed only by classes in the same package.
2. final class
3. private constructor. Cannot be instantiated.
Non-overridden method:
1. final class
2. final method
The overridden method can't be less accessible.
Overloading a method:
Methods with same name but different arguments lists. No polymorphism. Method signature: name and arugments.
1. Argument lists must be different.
2. Return types can be different but should not be the only difference.
Abstract class and Concrete class:
Abstract class cannot be instantiated.
Abstract methods must be overridden. The class also has to be abstract.
Abstract class can have abstract and non-abstract methods.
Abstract class can implement inherited abstract methods.
Any class that doesn't explicitly extend another class, implicitly extends Object.
The compiler decides whether you can call a method based on the reference type, not the actual object type. The reference is a Remote Control which refers to the corresponding object.
Use instanceof to check the class type.
if(o instanceof Dog) { Dog d = (Dog) o;}
Java does not allow multiple inheritance.
A java interface only has abstract methods. Interface methods are implicitly public and abstract, and not encouraged to type these words.
Extends one parent. Interface are the roles to play.
接口往往是对外展示的,方法默认为public和abstract。static方法只供interface定义内使用。default可以定义函数body,可以被复写。
- Section 7 - 8 polymorphsim
- section
- Section()
- Kmdtut 8---共享Section通讯
- Kmdtut 8---共享Section通讯
- USACO Section 1.1.7 Broken Necklace
- Section 7 - Net,CSS and Dom tabs
- .\Obj\Templet.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.
- STM32.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST
- .\Obj\HST_3G_IAP.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.
- .\Objects\5.sct(7): error: L6236E: No section matches selector - no section to be FIRST/LAST.
- section ("section-name")
- <section></section>标签
- C++(14):OOP之核心——多态(Polymorphsim)
- [水晶報表]動態設定section高度8/4
- kmd--8共享内存区通讯(Share section)
- Using R to Fix Data Quality: Section 8
- ZOJ-3488-Conic Section【8th浙江省赛】
- TCP/IP VLSM
- hdu 5270 ZYB loves Xor II
- 让程序员不再苦逼的四大神器
- 数列、集合、逻辑学起码常识暴露课本一系列重大错误 ——数列起码常识否定5千年“常识”:无最大自然数
- The Venetian Macau h
- Section 7 - 8 polymorphsim
- LeetCode 题解(134): Largest Number
- 【最大流】【HDU3338】【Kakuro Extension】
- 【最大团】【HDU1530】【Maximum Clique】
- 使用Socket发送GET/POST请求
- 什么是椭圆几何与双曲几何?
- 用SPCOMM 在 Delphi中实现串口通讯
- SPComm的一点小诀窍 spcomm的问题导致数据丢失 0x11与0x13错误
- ubuntu klyin初体验