OOP之属性继承和方法继承

 1 function CreatePerson(name,sex){
 2     this.name=name;
 3     this.sex=sex;
 4     this.showName();
 5     this.showSex();
 6 }
 7 CreatePerson.prototype={
 8     constructor:CreatePerson,//修正constructor
 9     showName:function(){
10         alert(this.name);
11     },
12     showSex:function(){
13         alert(this.sex);
14     }
15 }
16 new CreatePerson(‘小明‘,‘男‘);
17
18 function CreateStar(name,sex,job){
19     CreatePerson.call(this,name,sex);//继承CreatePerson属性
20     this.job=job;
21     this.showJob();
22 }
23
24 copyObj(CreateStar.prototype,CreatePerson.prototype);//拷贝继承CreatePerson.prototype的所有方法
25
26 CreateStar.prototype.showJob=function(){
27         alert(this.job);
28
29 }
30 new CreateStar(‘黄晓明‘,‘男‘,‘演员‘);
31
32 //拷贝父类的所有方法到子类
33 function copyObj(newObj,oldObj){
34     for(attr in oldObj){
35         newObj[attr]=oldObj[attr];
36     }
37 }
时间: 2024-10-06 17:04:33

OOP之属性继承和方法继承的相关文章

js oop中的三种继承方法

JS OOP 中的三种继承方法: 很多读者关于js opp的继承比较模糊,本文总结了oop中的三种继承方法,以助于读者进行区分. <继承使用一个子类继承另一个父类,子类可以自动拥有父类的属性和方法.(继承的两方,发生在两个类之间)> 一.通过object实现继承 1:定义父类 function Parent(){} 2:定义子类 funtion Son(){} 3:通过原型给Object对象添加一个扩展方法. Object.prototype.customExtend = function(p

PHP-静态方法继承等分析

<?php class A { const CONST_NAME = 'A'; public static $static_name = 'A'; public static $static_name_no_rewrite = 'A'; private static $_instance; public static function static_func() { echo 'A'; } public static function static_func_no_rewrite() { ech

Java方法继承、方法重载、方法覆盖小总结

转自:http://blog.csdn.net/cdsnmdl/article/details/3968688 ———————————————————————————————————— 1.方法继承:利用extends关键字一个方法继承另一个方法,而且只能直接继承一个类. 当Sub类和Base类在同一个包时Sub类继承Base类中的public/protected/默认级别的变量个方法 在不同包时继承public/protected级别的变量和方法. 2.方法重载:如果有两个方法的方法名相同,但

js方法继承

还是原来的味道,原来的配方,我们先来了解你这让你登上山顶的板砖(有些是个人想法和方法) 第一步.我们需要知道的是你定义的方法都会有一个prototype(用来存放公共的属性和方法),而这个原型指向一个原型对象.原型对象中又存在constructor和__proto__.方法(如图一) 图一 第二步.你需要知道实例化(new)后会产生一个__proto__(可以理解为__proto__取代了prototype的位置并指向了原型对象),如图二 <script> function a(){ } va

绑定与非绑定方法 继承 继承与抽象 查找属性关系 派生与覆盖 访问父类的内容

类属性与对象属性 类中应该仅存储所有对象共有的内容 如所有人的国籍相同那就放到类中 对象中存储每个对象独有的内容 ? 如每个人的名字都不同 初始化函数class Person: color = 'white' def read(self): print('hamlet') # 创建对象 也称之为实例化 产生的对象也称之为实例a1=Person()print(a1)print(a1.color)print(a1.__dict__) a2 = Person()print(a2)print(a2.re

Java main方法继承

java中main方法是可以继承的 Test1.java package Variables; public class Test1 { public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("Test1.main()"); System.out.println(Thread.currentThread().getStackTrace()[1].get

对方法继承的深入学习

重写继承方法与非重写继承方法的区别: c#: using System; using System.Collections.Generic; using System.Text; namespace Test1 { class A { public virtual void Func1() { Console.WriteLine("A - Func1"); } public void Func2() { Console.WriteLine("A - Func2");

Exception在方法继承中的限制

问题: 父类或接口中定义了方法应该抛出的异常,那么当子类重写方法时应该怎样定义将要抛出的异常: 首先定义异常和父类: 1 class Exception1 extends Exception {} 2 class Exception2 extends Exception {} 3 class Exception3 extends Exception {} 4 class Exception1_1 extends Exception1 {} 5 class Exception2_1 extends

JavaScript OOP多态、封装、继承

封装 封装就是把抽象出来的数据和对数据的操作封装在一起,数据被保护在内部, 程序的其它部分只有通过被授权的操作(成员方法),才能对数据进行操作. JS封装只有两种状态,一种是公开的,一种是私有的. <script type="text/javascript"> function Person(name, agei, sal){ // 公开 this.name = name; // 私有 var age = agei; var salary = sal; } var p1 =