VB.NETã§ã¯ã€ã‚¯ãƒ©ã‚¹ãƒ»é–¢æ•°ãƒ»å¤‰æ•°ãƒ»å®šæ•°ã‚’定義ã™ã‚‹ã¨ãã«ã€Public・Protected Friend・Protected・Friend・Private・Static・Shared・Dimã®å®£è¨€ã‚’è¡Œã„ã¾ã™ã€‚
ã¾ãŸã“ã®ä»–ã«ã‚‚ã€Using・Catch・LINQを使用ã™ã‚‹ã“ã¨ã‚‚ã‚ã‚Šã¾ã™ã€‚
ã©ã‚Œã‚’用ã„ã‚‹ã‹ã«ã‚ˆã£ã¦ã€å®šç¾©ã—ãŸã‚‚ã®ã®æœ‰åŠ¹ç¯„囲ã€å¯¿å‘½ãŒå¤‰ã‚ã£ã¦ãã¾ã™ã€‚
ãã®ãŸã‚ã€ç•°ãªã‚‹ã‚¯ãƒ©ã‚¹ã‹ã‚‰å‚ç…§ã™ã‚‹å ´åˆã€åŒã˜ã‚¯ãƒ©ã‚¹ã‹ã‚‰å‚ç…§ã™ã‚‹å ´åˆã€æ´¾ç”Ÿã‚¯ãƒ©ã‚¹ã‹ã‚‰å‚ç…§ã™ã‚‹å ´åˆãªã©ã«ã€é©ã—ãŸæŒ‡å®šã‚’æ£ã—ãè¡Œã†å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚
よã使ã‚れる宣言ã®å‚ç…§ã§ãる範囲ã¯ä»¥ä¸‹ã®ã‚ˆã†ã«ãªã‚Šã¾ã™ã€‚
åŒã˜ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆ | ç•°ãªã‚‹ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆ | |||||
---|---|---|---|---|---|---|
他クラス | 派生クラス | åŒã˜ã‚¯ãƒ©ã‚¹ | 他クラス | 派生クラス | ||
Public | â—‹ | â—‹ | â—‹ | â—‹ | â—‹ | |
Protected Friend | ○ | ○ | ○ | × | ○ | |
Protected | × | ○ | ○ | × | ○ | |
Friend | ○ | ○ | ○ | × | × | |
Private | × | × | ○ | × | × |
public ã¯ã©ã“ã‹ã‚‰ã§ã‚‚å‚ç…§ã§ãã¾ã™ãŒã€private ã¯åŒã˜ãƒ—ãƒã‚¸ã‚§ã‚¯ãƒˆã®åŒã˜ã‚¯ãƒ©ã‚¹ã‹ã‚‰ã—ã‹å‚ç…§ã§ããªã„ã§ã™ã。
派生クラスã¨ã¯ã€ã‚るクラスを継承ã—ã¦ä½œã‚‰ã‚ŒãŸæ–°ã—ã„クラスã§ã™ã€‚
ã“ã®ã‚ˆã†ã«ã€ã©ã®ç¯„囲ã§ä½¿ç”¨ã•ã‚Œã‚‹ã‹ã«ã‚ˆã£ã¦æ£ã—ãè¨å®šã—ã¦ã‚„ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚
æ£ã—ãè¨å®šã—ã¦ã€åˆ†ã‹ã‚Šã‚„ã™ããƒã‚°ã®å°‘ãªã„プãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã‚’心ãŒã‘ã¾ã—ょã†ã€‚
継承ã«ã¤ã„ã¦ã‚‚å°‘ã—ã¿ã¦ã„ãã¾ã—ょã†ã€‚
ã¾ãšã€åŸºæœ¬ã‚¯ãƒ©ã‚¹ã‚’作æˆã—ã¦ã¿ã¾ã™ã€‚
継承元ã®åŸºæœ¬ã‚¯ãƒ©ã‚¹ã‚’作æˆã™ã‚‹éš›ã«ã¯ã€MustInheritを指定ã—ã¾ã™ã€‚
Public MustInherit Class Class1
Public MustOverride Sub Sample()
End Class
ã“ã‚“ãªæ„Ÿã˜ã§ã™ã€‚
MustInheritã‚ーワードã¯ã€ã“ã®ã‚¯ãƒ©ã‚¹ã®ã‚¤ãƒ³ã‚¹ã‚¿ãƒ³ã‚¹ã‚’作æˆã™ã‚‹ã“ã¨ãŒã§ããªã„ã“ã¨ã‚’示ã—ã¦ã„ã¾ã™ã€‚
ãã®ãŸã‚ã€ã“ã®ã‚¯ãƒ©ã‚¹ã‚’継承ã—ãŸã‚¯ãƒ©ã‚¹ã‚’インスタンス化ã—ã¦ä½¿ç”¨ã™ã‚‹å¿…è¦ãŒã‚ã‚Šã¾ã™ã€‚
ã¾ãŸã€MustOverrideã‚ーワードã§ãƒ¡ã‚½ãƒƒãƒ‰ã‚’定義ã—ã¦ã„ã¾ã™ãŒã€ã“ã‚Œã¯å¿…ãšç¶™æ‰¿ã—ãŸã‚¯ãƒ©ã‚¹ã§ã‚ªãƒ¼ãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã‚’ã—ãªã‘ã‚Œã°ã„ã‘ãªã„ã¨ã„ã†ã“ã¨ã§ã™ã€‚
ç¾åœ¨ã¯ä¸èº«ãŒãªã„ã®ã§å½“ãŸã‚Šå‰ã ã¨ã¯æ€ã„ã¾ã™ãŒã€ã‹ãªã‚‰ãšç¶™æ‰¿ã«ã‚ˆã‚Šå†…容を与ãˆãªã‘ã‚Œã°ä½¿ã†ã“ã¨ã¯ã§ãã¾ã›ã‚“。
次ã«æ´¾ç”Ÿã‚¯ãƒ©ã‚¹ã‚’作æˆã—ã¾ã™ã€‚
Public Class Class2
Inherits Class1
Public Overrides Sub Sample()
Trace.WriteLine("test")
End Sub
End Class
Inherits を使用ã—ã¦åŸºæœ¬ã‚¯ãƒ©ã‚¹ã‚’指定ã—ã¾ã™ã€‚
ã¾ãŸã€Overridesを使用ã—ã¦ã€å…ˆã»ã©ã€ŒMustOverrideã€ã‚’使用ã—ã¦ä½œæˆã—ãŸãƒ¡ã‚½ãƒƒãƒ‰ã‚’オーãƒãƒ¼ãƒ©ã‚¤ãƒ‰ã—ã¦ã„ã¾ã™ã€‚
ã“ã‚“ãªæ„Ÿã˜ã§ã€ã‚«ãƒ—セル化ã—ã¦ä½¿ã„ã‚„ã™ã„ソースã«ã—ã¦ã„ãã¾ã™ã€‚
ç§ãŒãƒ—ãƒã‚°ãƒ©ãƒ ã‚’å¦ã³å§‹ã‚ãŸã“ã‚ã¯ã€ã€Œå…¨éƒ¨publicã§å®šç¾©ã™ã‚Œã°ã‚ˆã„ã˜ã‚ƒã‚“ï¼ã€ã¨æ€ã£ã¦ã„ã¾ã—ãŸã€‚ (実際ãã†ã—ã¦ã„ã¾ã—ãŸw)
é©å½“ã«å®šç¾©ã—ã¦ã€ç¶™æ‰¿ã‚„カプセル化も行ã‚ãšã«ãƒ—ãƒã‚°ãƒ©ãƒŸãƒ³ã‚°ã—ã¦ã‚‚ã€ãã®å ´ã§ã¯ä¸€å¿œä½œã‚Šä¸Šã’ã‚‹ã“ã¨ã¯ã§ãã¾ã™ã€‚
ã—ã‹ã—ã€å¾Œã‹ã‚‰ã„ã‚ã„ã‚å•é¡ŒãŒã§ã¦ãã¾ã™ã€‚
æ‹¡å¼µã—ã¦ã„ãä¸ã§ã‚½ãƒ¼ã‚¹ãŒè‚¥å¤§åŒ–ã—ã¦ã„ãã€ã¨ã¦ã‚‚ã¿ã«ãããƒã‚°ã®ç”Ÿã¾ã‚Œã‚„ã™ã„ソースãŒå®Œæˆã—ã¡ã‚ƒã„ã¾ã™ã€‚
ãã†ãªã‚‰ãªã„よã†ã€ãã®å ´é™ã‚Šã®å¯¾å¿œã§ã¯ãªã後々を考ãˆãŸãƒ—ãƒã‚°ãƒ©ãƒ を組むよã†å¿ƒãŒã‘ã¾ã—ょã†ã€‚
ãã®ç¬¬ä¸€æ©ãŒã€æ£ã—ã宣言をè¨å®šã™ã‚‹ã“ã¨ãªã®ã§ã¯ãªã„ã§ã—ょã†ã‹ã€‚