Java継承
12791 ワード
継承
//...
}
class Parent { }
class Child extends Parent {
// ...
}
public class EX7_1 {
public static void main(String[] args) {
Tv tv = new Tv();
tv.channel = 10;
tv.channelDown();
System.out.println(tv.channel);
SmartTv stv = new SmartTv();
stv.channel = 10;
stv.channelUp();
System.out.println(stv.channel);
stv.caption = true;
stv.displayCaption("안녕하세요");
}
}
class Tv{
boolean power;
int channel;
void power(){
power = !power;
}
void channelUp(){
++channel;
}
void channelDown(){
--channel;
}
}
class SmartTv extends Tv{
boolean caption;
void displayCaption(String text){
if(caption){
System.out.println(text);
}
}
}
単一継承
Javaは単一の継承のみを許可します.(C++は複数の継承を許可)
Class TvDVD extends Tv,DVD{//error:オリジナルバージョンのみ許可
//...
}
インタフェースは、クラス間の競合を防止し、マルチ継承の効果を生成します.
インタフェースを使用しない場合、複数の継承効果が発生します.
class MyTv{
boolean power;
int channel;
void power(){power = !power;}
void channelUp(){ ++channel;}
void channelDown(){ --channel;}
}
class DVD{
boolean power;
void power(){power = !power;}
void play(){/* 내용 생략 */}
void stop(){/* 내용 생략 */}
void rew(){/* 내용 생략 */}
void ff(){/* 내용 생략 */}
}
class TvDVD extends Tv{
DVD dvd = new DVD();
void play(){ // 껍데기를 만들어주어 인스턴스 레벨에서 바로 사용할 수 있게 한다.
dvd.play();
}
void stop(){
dvd.stop();
}
void rew(){
dvd.rew();
}
void ff(){
dvd.ff();
}
}
Objectクラス-すべてのクラスの親
親クラス
Reference
この問題について(Java継承), 我々は、より多くの情報をここで見つけました https://velog.io/@nathan29849/Java-상속Inheritanceテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol