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

深圳优化网站排名免费一键生成转账截图

深圳优化网站排名,免费一键生成转账截图,做外卖那些网站好,网站建设与域名备案继承 所有的OOP语言都会有三个特征: 封装(点击可跳转);继承;多态 为什么会有继承呢?可以先看下面的例子: 上面这两个类中的代码很相似因为它们只有最后一个方法不同其它的都相同,这样…

继承

所有的OOP语言都会有三个特征:

  1. 封装(点击可跳转);
  2. 继承;
  3. 多态

为什么会有继承呢?可以先看下面的例子:

        上面这两个类中的代码很相似因为它们只有最后一个方法不同其它的都相同,这样定义不但导致代码冗余而且非常麻烦。而在OOP语言中继承就是专门用来进行共性抽取,实现代码复用


 

继承(inheritance)机制:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特 性的基础上进行扩展,增加新功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构, 体现了由简单到复杂的认知过程。继承主要解决的问题是:共性的抽取,实现代码复用

在JAVA中要实现继承需要借助extends关键字。

修饰符 class 子类 extends 父类 {
// ...
}

此时我们在看再面的例子老师和学生都属于人这个大类,那么我们就可以单独定义一个People类来将他们相同的属性和方法放在一起,然后由学生类和老师类分别继承人这个大类:

class People{public String name;public int age;public void speak(){System.out.println(this.name+"正在说话");}
}class Teacher extends People{public void work(){System.out.println(this.name+"正在教书");}
}class Student extends People{public void study(){System.out.println(this.name+"正在学习");}
}
public class Test {public static void main(String[] args) {Teacher teacher = new Teacher();teacher.name = "zhangsan";teacher.age = 24;teacher.speak();teacher.work();System.out.println("==========");Student student = new Student();student.name = "xiaoming";student.age = 15;student.speak();student.study();}
}

 注意:子类会将父类中的成员变量或者成员方法继承到子类中。

那么现在又有一个新问题如果子类中有和父类相同的属性或方法那系统会怎么办?

class People{public String name;public int age = 25;public void speak(){System.out.println(this.name+"正在说话");}
}class Teacher extends People{public int age = 20;public void work(){System.out.println(this.name+"正在教书"+"今年"+this.age);}
}public class Test {public static void main(String[] args) {Teacher teacher = new Teacher();teacher.name = "zhangsan";teacher.work();}
}

此时父类和子类都有age属性代码运行后可以看到使用的是子类的属性。 

 总结:

  1. 通过子类对象访问父类与子类中属性时,优先访问自己的,自己没有时再到父类中找,如果父类中也没有则报错。
  2. 通过子类对象访问父类与子类中不同名方法时,优先在子类中找,找到则访问,否则在父类中找,找到则访问,否则编译报错。
  3. 通过子类对象访问父类与子类同名方法时,如果父类和子类同名方法的参数列表不同(重载),根据调用方法适传递的参数选择合适的方法访问,如果没有则报错;

就算父类中有private修饰的属性或方法子类也会将它继承下来但是无法访问。

super 

在上面的例子中出现了一个新的关键字super。那么super关键字是干什么的?

该关键字主要作用:在子类方法中访问父类的成员。

class People{public String name;public int age = 25;public void speak(){System.out.println(this.name+"正在说话");}
}class Teacher extends People{public int age = 20;public void work(){System.out.println(this.name+"正在教书"+"今年"+super.age);}
}public class Test {public static void main(String[] args) {Teacher teacher = new Teacher();teacher.name = "zhangsan";teacher.work();}
}

因为父类和子类都有age属性此时如果想访问父类的属性就可以通过super关键字 (下文会为大家介绍super的第三种使用方法)。


 

 子类的构造方法

此时如果父类有带参数的构造方法那么系统将会报错。

 那没什么上面的代码可以正常执行?

原因是上面的代码使用的是系统自己默认的无参构造。那么此时应该怎么办?

接下来就为大家介绍一下super关键字的第三种使用方法:

super();

它可以调用父类的构造方法。

注:它必须放在构造方法的第一行。

如果使用的是系统自己默认的无参构造那么系统就会自动调用使用super()调用父类的无参构造。所以我们只要在子类的构造方法中调用父类的有参构造代码就不会报错了。

 

http://www.yayakq.cn/news/77980/

相关文章:

  • 做公司网站要钱吗凉山网站开发
  • 网站侧边菜单linux 部署wordpress
  • 优质网站建设wordpress开场动画
  • 建网站 绑定域名 网址网络传媒公司
  • 汝南企业网站建设长春网站设计平台
  • 小型项目外包网站wordpress 样式
  • 网站空间是什么意思精细化工网站建设
  • 产业园网站建设方案厦门协会网站建设
  • 做网站优化就是发文章吗秦皇岛市海港区建设局网站
  • 宜昌网站设计制作公司扁平 网站模板
  • 宁夏做网站好的公司网站开发公司模版
  • 网站建设用啥技术知名响应式网站企业
  • 做淘客网站 名字国际新闻联播直播 今天
  • 公众号做成网站那样怎么做社区微网站建设需求分析
  • python能够做网站苏州相城网站建设
  • 瑞安 网站建设培训班下载手机app免费安装
  • 如何用js做网站wordpress后台编辑
  • 做网站的工作要求阿里云轻量级wordpress
  • 网站建设的公司哪家便宜手游推广平台代理
  • 公司网站出现空白页网站菜单素材
  • 网站模版亮点百度反馈中心
  • 如何做同城信息网站毕业设计做 什么网站好
  • 网站统计查询做门窗做什么网站好
  • 如何做一个个人网站软件市场下载
  • 仿牌做外贸建网站长春网站建设模板制作
  • 重庆企业官网建站快速搭建建盏大师排名与落款
  • 广告毕业设计作品网站做彩票网站是违法
  • 企业网站配色绿色配什么色合适推广官网
  • 上海建设银行官方网站中英企业网站模板
  • 网站建设定金合同范本商城建设网站