欢迎来到天天文库
浏览记录
ID:5447004
大小:169.00 KB
页数:31页
时间:2017-11-12
《主要内容类的继承继承时候的构造方法隐藏和覆盖重载》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、主要内容:*类的继承*继承时候的构造方法*隐藏和覆盖*重载、覆盖和重载的区别*Object类*终结类、终结方法*抽象类、抽象方法*接口一、类的继承关系classCar{intcar_number;voidset_number(intcar_num){car_number=car_num;}voidshow_number(){System.out.println(“MycarNo.is:”+car_number);}}classTrashCarextendsCar{intcapacity;voidset_capacity(int
2、trash_car_capacity){capacity=trash_car_capacity;}voidshow_capacity();{System.out.println(“Mycapacityis:”+capacity);}}TrashCar中继承了Car中的两个方法classCarDemo{publicstaticvoidmain(Stringargs[]){TrashCarDemoTrashCar=newTrashCar();DemoTrashCar.set_number(4949);DemoTrashCar.se
3、t_capacity(20);DemoTrashCar.show_number();DemoTrashCar.show_capacity();}}Car是父类,TrashCar是子类何时选择继承性一个很好的经验:“BisA?”,如果是则让B做A的子类常犯的错误A有一个B吗?例如让汽车轮子成为汽车的子类是错误的一、类的继承子类可以访问父类中的成员变量和成员方法?1、父类中的公有(public)成员,可以被子类直接访问。2、父类中的私有(private)成员,不能被子类直接访问,但是父类如果提供了公有的方法来访问其私有成员,则子类
4、可以通过父类的公有方法来访问私有成员。e.gpublicclassB{publicinta=10;privateintb=11;protectintc=12;publicintgetB(){returnb;}}publicclassAextendsB{publicvoidtryVariables(){System.out.println(a+b+c+getB());}}出错,b不能直接访问getB()没有问题,因为它是从父类继承过来的公有方法二、继承时候的构造方法构造方法是一种特殊的方法,可以重载,不能从父类继承。有继承时,构
5、造方法遵循的原则:1、子类不能继承父类的构造方法;2、子类可以调用父类的某一个构造方法super();super(name,adress);3、子类的构造方法没有明确调用父类的构造方法,则系统在执行子类的构造方法时会自动调用父类的默认构造方法(无参数的构造方法)4、若子类的构造方法中调用了父类的构造方法,则调用语句必须是子类构造方法的第一句publicclassPerson{protectStringname,address;publicPerson(){this(“”,“”);}publicPerson(StringaNam
6、e,StringanAddress){name=aName;address=anAddress;}}//父类publicclassEmployeeextendsPerson{protectintemployeeNumber;protectStringworkPhoneNumber;publicEmployee(){this(0,“”);}publicEmployee(intaNumber,StringaPhoneNumber){employeeNumber=aNumber;workPhoneNumber=aPhoneNumbe
7、r;}}此处隐含调用构造方法super()super();publicclassProfessorextendsEmployee{protectedStringresearch;publicProfessor(){super();research=“”;}publicProfessor(intaNumber,StringaPhoneNumber,StringaResearch){super(aNumber,aPhoneNumber);research=aResearch;}}调用父类的无参数构造函数调用父类的参数相对应的构造函
8、数习题1、有关类Demo,哪句描述是正确的?publicclassDemoextendsBase{privateintcount;publicDemo(){System.out.println("ADemoobjecthasbeencreated");}protectedvo
此文档下载收益归作者所有