欢迎来到天天文库
浏览记录
ID:40556444
大小:50.89 KB
页数:10页
时间:2019-08-04
《java继承多态接口笔记》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、继承与多态3月19日继承与多态,抽象类,接口继承:只能复制publicprotecedt方法继承的缺点:子类继承父类的方法时,先调用父类的构造方法,所以性能上会有一定的影响packagecn.com.Extends;classTest1{privateStringname;//所以继承时,private属性必须用set和get提供接口给其它继承privateStringaddr;publicStringgetName(){returnname;}publicvoidsetName(Stringname){//如果屏蔽了set方
2、法,那么子类就不能再设置name属性了this.name=name;}publicvoiddo1(){System.out.println("super.....");}protectedvoiddo2(){System.out.println("父类do2里的中的方法");}privatevoiddo3(){//private方法不能被子类继承}}classTest2extendsTest1{publicvoiddo1(){//这里重写了父类中的do1()方法//区别下面这样的写法//super.do1();//调用父类的方
3、法//do1();//调用子类的方法,这样会出现死循环,出现报错System.out.println("重写父类的方法,看结果就知道");}publicvoids1(){this.do1();do1();//可以直接引用父类的方法}publicvoids2(){this.do2();//继承只能复制publicprotected的方法//this.do3();//不能继承父类private的方法}publicvoids3(){super.do1();//调用父类的do1()方法}}publicclassTestXiJiang{
4、/***@继承和多态*/publicstaticvoidmain(String[]args){//Test2t2=newTest2();//t2.do1();//t2.s3();Test1t1=newTest2();//父类引用指向子类对象//t1.do1();//父类的方法,子类的重写方法,打印的是子类的方法中的东西t1.do2();}}区别:publicprotectedprivate三者在继承中的区别继承只能复制publicprotected的方法private方法不能被子类继承所以继承时,private属性必须用set
5、和get提供接口给其它继承接口:Interface中的所有方法都不用去实现,相当于细化了抽象方法,也就是方法不能有{}继承只能单继承,要多继承可以ABC但接口不一样了,可以实现多接口,所以编程中少继承,多接口一旦接口更改了,实现接口的方法也得跟着更改接口可以继承接口,但不能继承类,类可以实现接口,而且可以实现多接口,接口不能实现接口如下例:packagecn.com.Interface;publicinterfaceIt{//接口中的所有方法都不能被实现,相当于细化了抽象方法publicvoidt1();//不能有{}publ
6、icvoidt2(Stringname);//可以有返回值publicStringt3();//publicStringt4();}接口继承接口packagecn.com.Interface;publicinterfaceIt2extendsIt{//接口能继承接口,但不能继承类,类可以实现接口,而且可以实现多接口,接口不能实现接口//publicvoiddo1();//不能有{}}抽象类:抽象类中的抽象方法,子类必须去实现,不是抽象方法子类可以去重写也可不重写,也可以直接调用父类的方法定义了一个抽象类:抽象类中定义了抽象方法
7、packagecn.com.DuTai;publicabstractclasst1{//抽象类publicabstractvoidadd();//抽象方法publicvoiddel(){}publicvoiddisplay(){}}定义了一个抽象类packagecn.com.DuTai;//publicclassTest{publicabstractclassTest{publicvoiddo1(){System.out.println("Test.do1()......");}publicvoiddo2(){}publica
8、bstractvoiddo3();//抽象方法/***@paramargs*/publicstaticvoidmain(String[]args){//TODOAuto-generatedmethodstub}}定义了一个普通类,继承了抽象类Test子类必须去实现父类中的抽象
此文档下载收益归作者所有