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

顺义区做网站的公司福州360手机端seo

顺义区做网站的公司,福州360手机端seo,网络代理配置异常,深一网站建设前言 http://t.csdnimg.cn/uibg3 在上一篇中我们已经讲解过封装,这里就主要讲解继承与多态 继承 1.为什么需要继承 Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是现实…

前言

http://t.csdnimg.cn/uibg3

在上一篇中我们已经讲解过封装,这里就主要讲解继承与多态


继承

1.为什么需要继承

Java中使用类对现实世界中实体来进行描述,类经过实例化之后的产物对象,则可以用来表示现实中的实体,但是现实世界错综复杂,事物之间可能会存在一些关联,那在设计程序是就需要考虑

面向对象思想中提出了继承的概念,专门用来进行共性抽取,实现代码复用

2.什么是继承

继承:是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性
的基础上进行扩展,增加新功能,这样产生新的类,称派生类。

继承呈现了面向对象程序设计的层次结构, 体现了由简单到复杂的认知过程。

继承主要解决的问题是:共性的抽取,实现代码复用
比如猫和狗都是动物,那么我们就可以进行共性的抽取实现继承

在这,Dog和Cat都继承了Animal类,其中:Animal类称为父类/基类或超类,Dog和Cat可以称为Animal的子类/派生类,继承之后,子类可以复用父类中成员,子类在实现时只需关心自己新增加的成员即可,在这之后还可以实现多态

3.如何使用继承

1.基本应用

我们先对父类进行设计

class Animals {public String name;public int age;public String color;public Animals(String name, int age, String color) {this.name = name;this.age = age;this.color = color;}public void eat() {System.out.println(this.name + "正在吃饭!");}
}

之后对子类使用extends关键字进行继承

class Dog extends Animals {public Dog() {super("xiaohei", 10, "黄色");}public void bark() {System.out.println(this.name + "正在汪汪汪!");}
}class Cat extends Animals {public Cat(){super("xiaohuang",20,"黑白");}public void mew() {System.out.println(this.name + "正在喵喵喵!");}
}

在这里我们的子类应当与父类有所不同,不然就没必要使用继承

2.子类对父类成员变量的访问

class Base {public int a = 1;public int b = 2;
}class Derived extends Base {public int a = 100;public int c = 3;public void test() {System.out.println(super.a);//调用父类的System.out.println(this.a);//调用子类的System.out.println(super.b);//调用父类System.out.println(this.b);//子类没有则调用父类的System.out.println(this.c);//子类的}
}public class Test2 {public static void main(String[] args) {Derived derived = new Derived();derived.test();}
}
如果访问的成员变量子类中有,优先访问自己的成员变量。
如果访问的成员变量子类中无,则访问父类继承下来的,如果父类也没有定义,则编译报错。
如果访问的成员变量与父类中成员变量 同名,则 优先访问自己的。

3.子类对父类成员方法的访问

class Base2 {public void testA() {System.out.println("testA()");}
}class Derived2 extends Base2 {public void testA() {System.out.println("Derived2::testA()");}public void testB() {System.out.println("testB()");}public  void testC() {this.testA();//子类super.testA();//父类this.testB();//子类}
}
public class Test2 {public static void main(String[] args) {Derived2 derived2 = new Derived2();derived2.testC();}
}

通过子类对象访问父类与子类中不同名方法时,优先在子类中找,找到则访问,否则在父类中找,找到则访问,否则编译报错。

通过派生类对象访问父类与子类同名方法时,如果父类和子类同名方法的参数列表不同(重载),根据调用方法适w传递的参数选择合适的方法访问,如果没有则报错

 4.super与this关键字

对于上述2.3子类对父类的访问,归根结底是super与this之间的区别

需要注意的是

1.只能在类的非静态方法中使用,用来访问非静态方法和字段

2.在构造方法中调用时,必须是构造方法的第一条语句,并且不能同时使用 

this是对当前对象的访问,而super是子类对象中从父类继承下来部分成员的引用

5.子类构造方法

class Base {public Base() {System.out.println("Base()");}
}
class Derived extends Base {public Derived() {// super();   // 注意子类构造方法中默认会调用基类的无参构造方法:super(),// 用户没有写时,编译器会自动添加,而且super()必须是子类构造方法中第一条语句,System.out.println("Derived()");}
}
public class Test2 {public static void main(String[] args) {Derived d = new Derived();}
}

4.结尾

Java中不支持多继承

一般我们不希望出现超过三层的继承关系. 如果继承层 次太多, 就需要考虑对代码进行重构了

若该类被final关键字修饰则不能被继承

值得一提的是区别于组合

继承表示对象之间是is-a的关系,比如:狗是动物,猫是动物

组合表示对象之间是has-a的关系,比如:汽车

这里贴一个详解继承与组合的文章 https://www.hollischuang.com/archives/1319


如果上述内容对您有帮助,希望给个三连谢谢 

http://www.qdjiajiao.com/news/9287.html

相关文章:

  • 无线网站应建设在什么地方黄山seo公司
  • 中国互联网广告公司排名陕西seo快速排名
  • 辽宁网站建设培训班微博推广方法有哪些
  • 网站中下滑菜单怎么做班级优化大师怎么下载
  • 如何介绍自己做的网站百度网盘下载的文件在哪
  • 服务好的镇江网站优化市场营销十大经典案例
  • 个人网站 可以自己做服务器优秀营销软文范例800字
  • 网站系统使用说明书最好的搜索引擎排名
  • 建设公司网站哪家好今日小说排行榜
  • 网站制作公司排名前十免费python在线网站
  • 兰州网站设计公司网络推广员的工作内容和步骤
  • 中国建设银行手机银行网站360排名优化工具
  • 手机网站支持微信支付百度推广退款电话
  • 九江网页设计公司泉州百度首页优化
  • 企业做网站维护价格竞价托管资讯
  • 域名注册以后会给你一个账户名密码上传做好的网站宁波seo优化费用
  • 网站建设与推广的实训报告什么叫网络市场营销
  • 襄阳做网站公司seo积分系统
  • 推广营销是什么意思seo外链发布技巧
  • 如何做网站站内搜索代码代运营哪家公司最靠谱
  • 清湖做网站的查域名备案信息查询
  • 成都网站建设易维达好关键词排名关键词快速排名
  • 360云盘做 网站图片服务器企业建设网站公司
  • 网站上线的步骤专业拓客团队怎么收费
  • 什么网站能和欧美国家的人做笔友关键词是网站seo的核心工作
  • 怎么做网站开发的方案成都网站建设系统
  • 西安的互联网营销公司上海网站优化
  • 无锡新区建设局网站如何免费推广自己的网站
  • 建自己的网站做外贸百度号注册官网
  • 扬州开发区建设局网站百度搜索指数1000是什么