美文网首页
多态&&public、private、protected、sta

多态&&public、private、protected、sta

作者: 幸宇 | 来源:发表于2022-04-16 17:23 被阅读0次

// 多态
// 子类对父类的方法进行了重写,子类和父类调同一个方法时会不一样。

// class Person{
//     name:string
//     constructor(name:string){
//         this.name = name
//     }
//     speak(){
//         console.log(`${this.name} is speaking`)
//     }
// }
// // const p1 = new Person('zx')
// // p1.speak()

// class Student extends Person{
//     speak(){
//         return `Student ${super.speak()}`
//     }
// }

// const s1 = new Student('zhangxing')
// console.log(s1.speak())

// public
// public,公有的,一个类里默认所有的方法和属性都是 public。
// class Person{
//     public name:string
//     public constructor(name:string){
//         this.name = name
//     }
//     public speak(){
//         console.log(`${this.name} is speaking`)
//     }
// }
// public 可写可不写,不写默认也是 public。
// private
// private,私有的,只属于这个类自己,它的实例和继承它的子类都访问不到。
// class Person{
//     private name:string
//     private constructor(name:string){
//         this.name = name
//     }
//     private speak(){
//         console.log(`${this.name} is speaking`)
//     }
// }
// 实例访问 name 属性,会报错:
// const p1 = new Person('zhangixng')
// p1.name
// 继承它的子类 访问 name 属性,会报错:
// class Student extends Person{
//     study(){
//         console.log(`${this.name} need study`)
//     }
// }

// protected
// protected 受保护的,继承它的子类可以访问,实例不能访问。
class Person{
    protected name:string
    protected constructor(name:string){
        this.name = name
    }
    public speak(){
        console.log(`${this.name} is speaking`)
    }
}
// 实列不可以访问
// const p1 = new Person('zx')
// 子类可以访问
class Student extends Person{
    study(){
        console.log(`${this.name} needs study`)
    }
}

// static
// static 是静态属性,可以理解为是类上的一些常量,实例不能访问
// 比如一个 Circle 类,圆周率是 3.14,可以直接定义一个静态属性。

class Circle{
    static pi = 3.14
    public radius:number
    public constructor(radius:number){
        this.radius = radius
    }
    public calcLength(){
        //  // 计算周长,直接访问 Circle.pi
        return Circle.pi*this.radius*2
    }
}
// 实列访问,会报错
const c1 = new Circle(10)

相关文章

  • 多态&&public、private、protected、sta

    // 多态// 子类对父类的方法进行了重写,子类和父类调同一个方法时会不一样。

  • @public,@protected,@private,@sta

    1.@public,@protected,@private 个人觉得@public和@protected并没有很明...

  • 二十个常见JAVA面试题

    1、面向对象的特征有哪些? 抽象,继承,封装,多态。 2、public,private,protected修...

  • 周记二

    周一:今天学了继承和多态,继承有public继承、protected继承、private继承,多态和虚函数一对,抽...

  • Java面向对象程序思想-1

    前言 面向对象有三大特征:封装、继承和多态,Java提供了private、protected、public...

  • public private protected

    public private protected就是PHP中的修饰符,它的作用是控制对象对类的访问 eg. 在pe...

  • @private、@protected、@public

    @private 作用范围:只有自身类可以调用 @protected 作用范围:在自身类和继承自己的子类可以调用(...

  • public、protected、private

    1、public:表示紧随其后的元素对任何人都是可用的。2、private:表示除类型创建者和类型的内部方法之外的...

  • java面试题集(一)

    1、面向对象的特征有哪些方面? 封装、继承、多态 2、访问修饰符public,private,protected,...

  • 可见修饰符

    修饰符: public、private、protected、internal默认为public。private的可...

网友评论

      本文标题:多态&&public、private、protected、sta

      本文链接:https://www.haomeiwen.com/subject/ewjhertx.html