What is the difference between final Class and Class?

前端 未结 7 2201
名媛妹妹
名媛妹妹 2020-12-25 09:40

What is the difference between final Class and Class?

final class A {

}

class B {    

}
7条回答
  •  再見小時候
    2020-12-25 10:09

    Other answers are already given enough understanding about final keyword. I want to explain by some example.

    Consider below example without final Keyword.

    class A {
       public var name: String
       var breed: String
    
        init(name: String, breed: String) {
            self.name = name
            self.breed = breed
        }
    }
    class B:A{
        override init(name: String, breed: String) {
            super.init(name: name, breed: breed)
        }
    }
    

    In above code it allow to overwrite the varible of it's super class. While Class with final keyword don't allow it. Refer below example.

    final class A {
       public var name: String
       var breed: String
    
        init(name: String, breed: String) {
            self.name = name
            self.breed = breed
        }
    }
    
    class B:A{
        **//ERROR:inheritance from a final class 'A' class B**
        override init(name: String, breed: String) {
            super.init(name: name, breed: breed)
        }
    }
    

    Above code will give error inheritance from a final class A class B

提交回复
热议问题