当前位置: 首页 > news >正文

印象网站建设镇江网站公司

印象网站建设,镇江网站公司,电商网站网络服务,固定ip做网站目录 1.继承的概念 2.继承的语法 3.父类成员访问 3.1子类中访问父类成员变量 3.2子类中访问父类成员方法 4.super关键字 5.子类构造方法 6.继承方式 7.final关键字和类的关系 面向对象思想中提出了继承的概念#xff0c;专门用来进行共性抽取#xff0c;实现代码复…目录 1.继承的概念 2.继承的语法 3.父类成员访问  3.1子类中访问父类成员变量 3.2子类中访问父类成员方法 4.super关键字  5.子类构造方法 6.继承方式 7.final关键字和类的关系 面向对象思想中提出了继承的概念专门用来进行共性抽取实现代码复用。就像是数学中提取每一个数的公因数一般把相同的代码提取出来单独的成为一个类但同时又可以被别的类使用其中的属性或方法。 1.继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段它允许程序员在保持原有类特性的基础上进行扩展增加新功能这样产生新的类称派生类。继承呈现了面向对象程序设计的层次结构 体现了由简单到复杂的认知过程。继承主要解决的问题是共性的抽取实现代码复用 Cat和Dog类既有从父类Animal继承的语句也含有本身的语句。 class Animal{//父类String name;int age;public void eat(){System.out.println(this.name is eating.);} }class Cat extends Animal{ //Animal的子类public void miaow(){System.out.println(miaomiaomiao~);} }class Dog extends Animal{ //Animal的子类public void bark(){System.out.println(wangwangwang~);} } 2.继承的语法 修饰符 class 子类 extends 父类{……} class Animal{//父类String name;int age;public void eat(){System.out.println(this.name is eating.);} }class Cat extends Animal{//子类public void miaow(){System.out.println(miaomiaomiao~);} }public class Test {public static void main(String[] args) {Cat cat new Cat();System.out.println(cat.age);System.out.println(cat.name);} } 我们可以看到我们在main方法中只实例化了cat对象但是cat本身并没有定义任何成员变量却发现可以调用成员变量age和name。而我们又使用了继承由此可知对象cat当中的成员变量肯定来自于其父类Animal同样的我们也可以同样的访问父类的方法。 通过上面的举例我们值得注意的是 子类本身要有属于自身的语句如果和父类相同则没必要创建一个新的类。子类会将父类的成员变量和方法继承到子类当中 3.父类成员访问  3.1子类中访问父类成员变量 我们可以在子类中使用方法来访问父类的成员使用this会先在子类中寻找成员如果找不到则会进入父类寻找所以在子类中this也可以访问父类成员 class Animal{//父类String name;int age;public void eat(){System.out.println(this.name is eating.);} }class Cat extends Animal{ //Animal子类public void setName(String name){this.name name;}public void miaow(){System.out.println(miaomiaomiao~);} } 还有另一种情况就是子类中成员名和父类的相同。 class Animal{//父类String name; //注意1int age;public void eat(){System.out.println(this.name is eating.);} }class Cat extends Animal{ //Animal子类String name; //注意2public void setName(String name){this.name name;}public void miaow(){System.out.println(miaomiaomiao~);} } 此处子类和父类的成员名都相同那下面的setName方法中访问的是子类的成员还是父类的成员呢 答案是子类的。就像是C语言中局部变量和全局变量一样如果变量名相同给其赋值局部变量会优先与全局变量类似就近原则在这里也是同样的道理 “成员名相同访问父类成员变量的方法我们下面会有所提及” 于是我们总结以下几点 如果访问的成员变量子类中有优先访问自己的成员变量。如果访问的成员变量子类中无则访问父类继承下来的如果父类也没有定义则编译报错。如果访问的成员变量与父类中成员变量同名则优先访问自己的。  3.2子类中访问父类成员方法 如果成员方法名不相同的情况 和访问父类成员变量类似的先在子类中寻找要访问的成员方法如果有即可以访问。如果子类没有下一步是进入到父类寻找要访问的成员方法。父类中访问不到相应的成员方法则编译器会报错。子类的优先级是大于父类的 成员方法名相同的情况 class Base{public void methodA(){System.out.println(Base中的方法);}public void methodB(){System.out.println(Base中的方法);} }class A extends Base{public void methodA(int a){System.out.println(A中的参数为int的methodA方法);}public void methodB(){System.out.println(A中的methodB方法);} } public class Test {public static void main(String[] args) {A a new A();a.methodA();//没有参数访问的是父类中的methodA方法a.methodA(5);//有参数访问的是子类中的methodA方法a.methodB();//访问的是子类的方法不可能访问到父类的方法//因为先在子类中访问再到父类} } 总结 通过子类对象访问父类与子类中不同名方法时优先在子类中找找到则访问否则在父类中找找到则访问否则编译报错。通过派生类对象访问父类与子类同名方法时如果父类和子类同名方法的参数列表不同(重载)根据调用方法适传递的参数选择合适的方法访问如果没有则报错 4.super关键字  Java提供了super关键字该关键字主要作用在子类方法中访问父类的成员。 class Base{public void methodA(){System.out.println(Base中的方法);}public void methodB(){System.out.println(Base中的方法);} }class A extends Base{public void methodA(int a){System.out.println(A中的参数为int的methodA方法);}public void methodB(){System.out.println(A中的methodB方法);super.methodB();//注意此处用super关键字访问到了父类的成员方法} } public class Test {public static void main(String[] args) {A a new A();a.methodA();//没有参数访问的是父类中的methodA方法a.methodA(5);//有参数访问的是子类中的methodA方法a.methodB();//访问的是子类的方法不可能访问到父类的方法//因为先在子类中访问再到父类} } 注意事项 只能在非静态方法中使用在子类方法中访问父类的成员变量和方法 5.子类构造方法 因为父类和子类是继承关系即子类会继承父类的成员变量除此还有自身额外的成员变量在构建子类的构造方法的时候要先调用父类的构造方法。 class Base{public Base(){System.out.println(调用了父类的构造方法);} }class A extends Base{public A(){super();//调用父类的构造方法 用户没有写的时候会默认自动添加System.out.println(调用了子类的构造方法);}}public class Test {public static void main(String[] args) {A a new A();} } 注意 若父类显式定义无参或者默认的构造方法在子类构造方法第一行默认有隐含的super()调用即调用基类构造方法如果父类构造方法是带有参数的此时需要用户为子类显式定义构造方法并在子类构造方法中选择合适的父类构造方法调用否则编译失败。在子类构造方法中super(...)调用父类构造时必须是子类构造函数中第一条语句。super(...)只能在子类构造方法中出现一次并且不能和this同时出现 6.继承方式 java中的继承方式分为3种 第一种单继承 即一个类被另一个类继承 class A{…… }class B extends A{…… } 第二种多层继承 即有一个类A类B继承了A类C继承了B class A{…… }class B extends A{…… }class C extends B{…… } 第三种不同类继承同一个类 即有一个类A类B继承A类C继承A class A{…… }class B extends A{…… }class C extends A{…… } 7.final关键字和类的关系 当final修饰一个类的时候这个被修饰的类不能被继承 编译器会报错
http://www.dnsts.com.cn/news/250211.html

相关文章:

  • 网上设计接单的网站贵州省建设厅网站首页
  • 做网站流量怎么卖seo公司
  • 学完js了可以做哪些网站做电影网站被告版权
  • 苏州网站建设的一般流程wordpress主题资源网
  • 如何做网站设计php网站设计流程
  • 安全狗iis版删了以后 网站打不开适合负债者的10个副业
  • 广东注册公司在哪个网站申请网页设计代码开头
  • html5 爱情网站模板客户管理系统app下载
  • 网站内容和备案不一软件公司网站系统集成建设
  • 网站建设综合设计电子商务网站开发与建设试卷
  • 建站公司怎么备案综合网站开发
  • 深圳网站建设服务商万创网洛阳西工区做网站哪家好
  • 网站模板样式修改黄骅市网站建设价格
  • 郑州移动端网站建设网页制作作业源代码
  • seo单词优化seo引擎搜索网站
  • 企业网站建设视频教程个人网站建设方案书用备案的
  • 中国怎么进fiverr网站做任务计算机哪个专业最吃香而且最简单
  • wordpress评价百度网站排名搜行者seo
  • 深圳国际红树林中心成都网站制作实力乐云seo
  • 豪华大气的旅行社网站源码携程旅游网官方网站 做攻略
  • 太原网站排名公司哪家好科技苑
  • dedecms学校网站高校部门网站建设
  • 望野博物馆免费关键词排名优化
  • 网站推广教程优化整站炫酷网站首页
  • 58临沂网站建设定制开发软件系统开发
  • 重庆建设教育协会网站首页二级域名是什么意思
  • 网站测速土建工程承包施工队
  • steam官方网站下载西宁建设网站软件
  • 秦皇岛 免费建网站营销型网站建设模板下载
  • wap手机网站开发软件可以做片头的网站