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

沧州网站推广优化商集客电话做网站都有什么项目

沧州网站推广优化商集客电话,做网站都有什么项目,网站建设服务公司宣传语言,网站建设 如何友情链接7.0、Java继承与多态 - 多态的特性 面向对象的三大特征:封装性、继承性、多态性; extends继承 或者 implements实现,是多态性的前提; 用学生类创建一个对象 - 小明,他是一个 学生(学生形态)&…

7.0、Java继承与多态 - 多态的特性

面向对象的三大特征:封装性、继承性、多态性;

extends继承 或者 implements实现,是多态性的前提;

        用学生类创建一个对象 - 小明,他是一个 学生(学生形态),但同时也是一个 人(人类形态)

        小明是一个对象;这个对象既有 学生形态 也有 人类形态,一个对象拥有多种形态,这就是对象的多态性

代码中体现多态性,其实就是一句话 -> 父类引用指向子类对象;下面用代码给大家示范一下:

创建 People.java 类,如下所示 ->

public class People {int num = 6;public void eat() {System.out.println("人类吃饭");}
}

创建 Students.java 类,并让其继承 People 类,然后重写 eat() 方法,如下所示->

public class Students extends People {int num = 9;@Overridepublic void eat() {System.out.println("学生吃饭");}
}

创建 Main.java 类,如下所示 ->

public class Main {public static void main(String[] args) {//使用多态的写法//左侧父类的引用,指向了右侧子类的对象People people = new Students();people.eat();//这里调用成员方法,看等号右边是谁就有先调用谁System.out.println(people.num);//这里调用成员变量,看等号左边是谁就有先调用谁,所以输出的是 6}
}

        People people = new Students;people.eat(); -> 这里显然会调用 Students 中的 eat() 方法;因为 new 出来的是 Students 对象( 就是调用成员方法时 等号右边是谁就优先调用谁的方法 ); 

        而下面的 System.out.println(people.num);调用的是成员变量,那么看的就是 等号左边 是谁就优先调用谁,显然调用的是 People 中的 num = 6; 

        当我们通过成员方法去访问成员变量时,访问的该成员方法属于哪个类,访问的成员变量就是哪个类的;

在访问 成员方法 的时候有一个口诀:编译看左边,运行看右边 -> 具体情况看下面代码实例:

创建父类 Fu.java 文件,如下所示 ->

public class Fu {public void eat() {System.out.println("父类吃东西");}public void fuMethod() {System.out.println("执行fuMethod方法");}
}

创建 Zi.java 文件,并让其继承 Fu 类,如下所示 ->  

public class Zi extends Fu{@Overridepublic void eat() {System.out.println("子类吃东西");}public void ziMethod() {System.out.println("执行ziMethod方法");}
}

创建 Main.java 文件,如下所示 ->

public class Main {public static void main(String[] args) {Fu fu = new Zi();fu.eat();//编译通过在Fu类中有eat()方法但是运行时看右边Zi类,所以执行的是Zi类中的eat()方法fu.fuMethod();//编译通过在Fu类中有fuMethod()方法但是运行时看右边Zi类,但是Zi类中没有fuMethod()方法,所以向上找到父类中的fuMethod()方法执行fu.ziMethod();//编译不通过,左边是Fu 但是在Fu类中并没有ziMethod()这个方法所以编译不通过}
}

fu.eat();
        编译通过在 Fu 类中有 eat() 方法但是运行时看右边 Zi 类,所以执行的是 Zi 类中的 eat() 方法;

fu.fuMethod();
        
编译通过在 Fu 类中有 fuMethod() 方法但是运行时看右边 Zi 类,但是 Zi 类中没有 fuMethod() 方法,所以向上找到父类中的 fuMethod() 方法执行;

fu.ziMethod();
        
编译不通过,左边是 Fu 但是在 Fu 类中并没有 ziMethod() 这个方法所以编译不通过;

注意一下:

        该口诀针对的是 成员方法;不是 成员变量,访问 成员变量 的时候 编译看左边,运行看右边 ] 的口诀不适用;访问成员变量的时候口诀应该变成是 -> 编译看左边,运行还是看左边 ] 

那么多态在代码中的运用到底有什么作用呢?

下面给大家稍作解释 ->

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

相关文章:

  • 物流网站的建设论文一万字重庆建筑工程特种作业信息网
  • 广东网站备案系统一个简单的个人主页
  • 刘家窑做网站wordpress 流量数据库
  • 武进常州做网站企业网站开发时间
  • 天津建设工程协会网站wordpress htwo下载地址
  • 青岛专业做外贸网站百度网盘网页版登录首页
  • 网站自助建站网站空间不足
  • 恒通建设集团有限公司网站一个域名大概能卖多少钱
  • 2个女人做暧暧网站临夏市做网站电话
  • 三大门户网站哪家做的最好营销型网站建站系统
  • 肇庆 网站建设广西企业响应式网站建设设计
  • 阿里云速美建站月夜直播免费完整版观看
  • 单一产品做网站哈尔滨建站
  • 网站费计入什么科目域名购买后如何建设网站
  • 自己做的网站怎么放到网上去学校网站建设管理办法
  • 怎么做电影引流网站win7 asp网站无法显示该页面
  • 个人网站设计说明制作网站的详细步骤
  • 比较有名的设计网站怎么把asp网站做的好看
  • 沧州市住房和城乡建设局网站腾讯企点网页版
  • 服务好的南昌网站制作全国十大网站建设公司哪家好
  • 网站建设修改建议书导航网站设计方案
  • 优化自己的网站上海 顶尖 网站设计
  • 网站优化检查好听的建筑公司名字大全
  • 下沙做网站关于网站备案的44个问题
  • 网站建设和网络推广哪个难做泰安信息港房产网
  • 网站内容建设的布局用wordpress搭建网盘
  • 企业网站首页开发网站推广网站关键词排名怎么做
  • 沈阳网站建设58同城wordpress视频床
  • 网站设计与开发培训班seo知识分享
  • 企业视频网站模板烟台做网站公司