신속한 답변 클래스/하위 클래스 그룹에서 수퍼 클래스의 변수를 필요한 범위 내에 넣고 싶습니다. 예를 들어, 다음 코드에서. 나는 위의에 대해 좋아하지 않는 무엇Swift에서 클래스 변수 설정 요구 사항
class Vehicle {
var speed: Int
var heading: Int
init(speed: Int, heading: Int) {
self.speed = speed
self.heading = heading
}
func turnRight() {
if 360 - heading < 90 {
heading = heading - 270
} else {
heading = heading + 90
}
}
}
class Car : Vehicle {
init(speed: Int, heading: Int) {
super.init(speed: speed, heading: heading)
}
override func turnRight() {
speed = speed/2
if 360 - heading < 90 {
heading = heading - 270
} else {
heading = heading + 90
}
}
}
, 나는 차를 더 서브 클래스를 만드는거야, 난 항상 내가 게터에 대해 알고 0 내에서 360 그 제목은 확인하기 위해 강제로 것이라는 점이며, setter를 사용할 수 있지만 setter를 사용하고 여전히 변수를 증가시킬 수있는 방법이 있습니까?
이상적으로, 내 turnRight 기능을 같이 할 :
func turnRight() {
heading = heading + 90
}
override func turnRight() {
speed = speed/2
heading = heading + 90
}
... 그리고 슈퍼 클래스 내 변수 세트는 제목이 있는지 확인하기 위해
음에
didSet
사용을 고려, 당신은 당신의 모든 시간을 베어링 확인하는 대신이 함수를 호출 매개 변수로 플로트와 changeHeadingBy라는 함수를 만들 수 있습니다. 그런 다음 두 번째 예에서 "추가"대신에 이것을 사용하십시오. – SaylorTwift2'super.turnRight()'를 호출하면 어떨까요? – Sulthan