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

鄞州区住房和城乡建设委员网站seo工资待遇 seo工资多少

鄞州区住房和城乡建设委员网站,seo工资待遇 seo工资多少,天津网站优化建设,公司网站制作的费用申请目录 继承 一、基本介绍 二、示意图 三、基本语法 四、入门案例 父类 子类1 子类2 main方法 五、继承细节 第一条 第二条 第三条 第四条 ​编辑 第五条 第六条 第七条 第八条 第九条 第十条 六、继承本质 七、练习题 第三题 继承 一、基本介绍 继承可以…

目录

继承

一、基本介绍

二、示意图

三、基本语法

四、入门案例

父类

子类1

子类2

main方法

五、继承细节

第一条

第二条

第三条

第四条

​编辑 第五条

 第六条

第七条

第八条

第九条

第十条

六、继承本质

七、练习题

第三题

继承

一、基本介绍

继承可以解决代码冗余过高的问题,将两个或多个类中相同的属性和方法提取出来,放在一个类中,称其为父类,子类继承父类,就是继承了这些属性和方法(不需要再次说明),同时,子类中也可以有其特有的属性和方法

二、示意图

三、基本语法


子类 extends 父类{
子类特有的属性和发方法

注意事项:子类中一定要加关键字extends

四、入门案例

父类

package com.hspedu.extend_;public class Student {//父类public String name;public int age;private double score;public void setScore(double score) {this.score = score;}public void showInfo(){System.out.println("学生名 " + name + " 年龄 " + age + " 成绩 " + score);}
}

子类1

package com.hspedu.extend_;public class Pupil extends Student{public void testing() {System.out.println("小学生 " + name + " 正在考小学数学..");}
}

子类2

package com.hspedu.extend_;public class Graduate extends Student{public void testing() {//和 Pupil 不一样System.out.println("大学生 " + name + " 正在考大学数学..");}
}

main方法

package com.hspedu.extend_;public class Extends01 {public static void main(String[] args) {Graduate graduate = new Graduate();graduate.name = "金角大王";graduate.age = 21;graduate.testing();graduate.setScore(87);graduate.showInfo();System.out.println("===============");Pupil pupil = new Pupil();pupil.name = "银角大王";pupil.age = 11;pupil.testing();pupil.setScore(90);pupil.showInfo();}}

控制台输出结果

五、继承细节

第一条

子类继承了父类所有的属性和方法,非私有的属性和方法可以在子类直接访问,私有属性不能在子类直接访问,要通过父类的public方法去访问

父类

package com.hspedu.extend_;public class Base {//父类//四个属性,四个访问修饰符public int n1 = 100;protected int n2 = 200;int n3 = 300;private int n4 = 400;//默认的无参构造器public Base() {System.out.println("Base()....");}//四个方法,访问修饰符对应四个属性public void test100(){System.out.println("test100");}protected void test200(){System.out.println("test200");}void test300(){System.out.println("test300");}private void test400(){System.out.println("test400");}}

子类

package com.hspedu.extend_;public class Sub extends Base{//子类public Sub() {System.out.println("Sub()....");}public void sayOk(){//除了private属性和方法之外都可以访问}}

子类中不能访问父类中的private属性和方法

要通过父类提供的public方法去访问 

package com.hspedu.extend_;public class Base {//父类//四个属性,四个访问修饰符public int n1 = 100;public final int n5 = 500;protected int n2 = 200;int n3 = 300;private int n4 = 400;//默认的无参构造器public Base() {System.out.println("Base()....");}//父类提供一个public方法,子类可以访问父类的private属性public int getN4(){return n4;}//四个方法,访问修饰符对应四个属性public void test100(){System.out.println("test100");}protected void test200(){System.out.println("test200");}void test300(){System.out.println("test300");}private void test400(){System.out.println("test400");}//父类提供一个public方法,子类可以访问父类的private方法public void callTest400(){test400();}}
package com.hspedu.extend_;public class Sub extends Base{//子类public Sub() {System.out.println("Sub()....");}public void sayOk(){//除了private属性和方法之外都可以访问System.out.println(n1 + " " + n2 + " " + n3);test100();test200();test300();//test400();System.out.println("n4= " + getN4());callTest400();//中转}}

package com.hspedu.extend_;public class ExtendsDetail {public static void main(String[] args) {//细节说明Sub sub = new Sub();sub.sayOk();}
}

第二条

子类必须调用父类的构造器, 完成父类的初始化


第三条

当创建子类对象时, 不管使用子类的哪个构造器, 默认情况下总会去调用父类的无参构造器, 如果父类没有提供无参构造器, 则必须在子类的构造器中用 super 去指定使用父类的哪个构造器完成对父类的初始化工作, 否则, 编译不会通过

package com.hspedu.extend_;public class Base {//父类//四个属性,四个访问修饰符public int n1 = 100;public final int n5 = 500;protected int n2 = 200;int n3 = 300;private int n4 = 400;//默认的无参构造器
//    public Base() {
//        System.out.println("父类Base()的构造器被调用....");
//    }//父类的有参构造器public Base(String name, int age){System.out.println("父类的(String name, int age)构造器被调用....");}//父类提供一个public方法,子类可以访问父类的private属性public int getN4(){return n4;}//四个方法,访问修饰符对应四个属性public void test100(){System.out.println("test100");}protected void test200(){System.out.println("test200");}void test300(){System.out.println("test300");}private void test400(){System.out.println("test400");}//父类提供一个public方法,子类可以访问父类的private方法public void callTest400(){test400();}}
package com.hspedu.extend_;public class Sub extends Base{//子类public Sub() {//super();//隐藏的,创建子类对象的时候会默认调用父类的无参构造器super("smith",20);//当父类的无参构造器被覆盖时,用super指定调用父类的构造器System.out.println("子类Sub()构造器被调用....");}//当创建子类对象时, 不管使用子类的哪个构造器, 默认情况下总会去调用父类的无参构造器public Sub(String name){super("smith",20);System.out.println("子类Sub(String name)构造器被调用....");}public void sayOk(){//除了private属性和方法之外都可以访问System.out.println(n1 + " " + n2 + " " + n3);test100();test200();test300();//test400();System.out.println("n4= " + getN4());callTest400();//中转}}
package com.hspedu.extend_;public class ExtendsDetail {public static void main(String[] args) {//细节说明Sub sub = new Sub();System.out.println("=========第二个对象==========");Sub sub2 = new Sub("jack");//sub.sayOk();}
}

第四条

如果希望指定去调用父类的某个构造器, 则显式的调用一下 : super(参数列表)

package com.hspedu.extend_;public class Base {//父类//四个属性,四个访问修饰符public int n1 = 100;public final int n5 = 500;protected int n2 = 200;int n3 = 300;private int n4 = 400;//默认的无参构造器public Base() {System.out.println("父类Base()的构造器被调用....");}//父类的有参构造器,两个参数public Base(String name, int age){System.out.println("父类的(String name, int age)构造器被调用....");}//一个参数的构造器public Base(String name){System.out.println("父类的(String name)构造器被调用....");}//父类提供一个public方法,子类可以访问父类的private属性public int getN4(){return n4;}//四个方法,访问修饰符对应四个属性public void test100(){System.out.println("test100");}protected void test200(){System.out.println("test200");}void test300(){System.out.println("test300");}private void test400(){System.out.println("test400");}//父类提供一个public方法,子类可以访问父类的private方法public void callTest400(){test400();}}
package com.hspedu.extend_;public class Sub extends Base{//子类public Sub(String name, int age){//1.调用父类的无参构造器,两种方式:一是super(); 二是什么都不写//super();//2.调用父类Base(String name)的构造器//super("smith");//3.调用父类Base(String name, int age)的构造器super("smith",25);System.out.println("子类的(String name, int age)构造器被调用....");}public Sub() {//super();//隐藏的,创建子类对象的时候会默认调用父类的无参构造器super("smith",20);//当父类的无参构造器被覆盖时,用super指定调用父类的构造器System.out.println("子类Sub()构造器被调用....");}//当创建子类对象时, 不管使用子类的哪个构造器, 默认情况下总会去调用父类的无参构造器public Sub(String name){super("smith",20);System.out.println("子类Sub(String name)构造器被调用....");}public void sayOk(){//除了private属性和方法之外都可以访问System.out.println(n1 + " " + n2 + " " + n3);test100();test200();test300();//test400();System.out.println("n4= " + getN4());callTest400();//中转}}
package com.hspedu.extend_;public class ExtendsDetail {public static void main(String[] args) {//细节说明
//        Sub sub = new Sub();
//        //sub.sayOk();
//        System.out.println("=========第二个对象==========");
//        Sub sub2 = new Sub("jack");System.out.println("=========第三个对象==========");Sub sub3 = new Sub("ada", 46);}
}

 
第五条

super 在使用时, 必须放在构造器第一行(super 只能在构造器中使用)

 第六条

super() 和 this() 都只能放在构造器第一行, 因此这两个方法不能共存在一个构造器

第七条

java 所有类都是 Object 类的子类, Object 是所有类的基类
 

 TopBase类

public class TopBase {//父类是Object类public TopBase() {System.out.println("构造器TopBase()被调用...");}
}

Base类

package com.hspedu.extend_;public class Base extends TopBase{//父类//四个属性,四个访问修饰符public int n1 = 100;public final int n5 = 500;protected int n2 = 200;int n3 = 300;private int n4 = 400;//默认的无参构造器public Base() {System.out.println("父类Base()的构造器被调用....");}//父类的有参构造器,两个参数public Base(String name, int age){System.out.println("父类的(String name, int age)构造器被调用....");}//一个参数的构造器public Base(String name){System.out.println("父类的(String name)构造器被调用....");}//父类提供一个public方法,子类可以访问父类的private属性public int getN4(){return n4;}//四个方法,访问修饰符对应四个属性public void test100(){System.out.println("test100");}protected void test200(){System.out.println("test200");}void test300(){System.out.println("test300");}private void test400(){System.out.println("test400");}//父类提供一个public方法,子类可以访问父类的private方法public void callTest400(){test400();}}

Sub类

package com.hspedu.extend_;//ctrl+H查看继承关系
public class Sub extends Base{//子类public Sub(String name, int age){//1.调用父类的无参构造器,两种方式:一是super(); 二是什么都不写//super();//2.调用父类Base(String name)的构造器//super("smith");//3.调用父类Base(String name, int age)的构造器super("smith",25);//super() 和 this() 都只能放在构造器第一行, 因此这两个方法不能共存在一个构造器//this("jack");//调用本类的Sub(String name)构造器System.out.println("子类的(String name, int age)构造器被调用....");}public Sub() {//super();//隐藏的,创建子类对象的时候会默认调用父类的无参构造器super("smith",20);//当父类的无参构造器被覆盖时,用super指定调用父类的构造器System.out.println("子类Sub()构造器被调用....");}//当创建子类对象时, 不管使用子类的哪个构造器, 默认情况下总会去调用父类的无参构造器public Sub(String name){super("smith",20);System.out.println("子类Sub(String name)构造器被调用....");}public void sayOk(){//除了private属性和方法之外都可以访问System.out.println(n1 + " " + n2 + " " + n3);test100();test200();test300();//test400();System.out.println("n4= " + getN4());callTest400();//中转}}
package com.hspedu.extend_;public class ExtendsDetail {public static void main(String[] args) {//细节说明
//        Sub sub = new Sub();
//        //sub.sayOk();
//        System.out.println("=========第二个对象==========");
//        Sub sub2 = new Sub("jack");System.out.println("=========第三个对象==========");Sub sub3 = new Sub("ada", 46);}
}

 

第八条

父类构造器的调用不限于直接父类! 将一直往上追溯直到 Object 类(顶级父类)


第九条

子类最多只能继承一个父类(指直接继承), 即 java 中是单继承机制

第十条

不能滥用继承, 子类和父类之间必须满足 is-a 的逻辑关系

六、继承本质

一个继承的代码案例

package com.hspedu.extend_;/*** 讲解继承的本质*/
public class ExtendsTheory {public static void main(String[] args) {Son son = new Son();}
}
class GrandPa{//爷爷类String name = "大头爷爷";String hobby = "旅游";
}
class Father extends GrandPa {//父类String name = "大头爸爸";int age = 39;}
class Son extends Father { //子类String name = "大头儿子";
}


1)类加载的顺序

以上代码中创建子类对象,首先在方法区内进行类的加载,加载顺序是Object----->GrandPat----->Fathert----->Son

2)在堆中给对象分配一个地址空间,空间内的属性如下图所示

3)访问时的查找顺序

package com.hspedu.extend_;/*** 讲解继承的本质*/
public class ExtendsTheory {public static void main(String[] args) {Son son = new Son();//按照查找关系来返回信息//(1) 首先看子类是否有该属性//(2) 如果子类有这个属性,并且可以访问,则返回信息//(3) 如果子类没有这个属性,就看父类有没有这个属性(如果父类有该属性,并且可以访问,就返回信息..)//(4) 如果父类没有就按照(3)的规则,继续找上级父类,直到 Object...System.out.println(son.name);//大头儿子//System.out.println(son.age);//39,不能访问私有属性,但是空间中这个属性依然是存在的//通过父类提供的公共方法来访问private属性System.out.println(son.getAge());System.out.println(son.hobby);//旅游}
}
class GrandPa{//爷爷类String name = "大头爷爷";String hobby = "旅游";//Father中的age是private修饰的,不能直接访问,// 就算GrandPa中有属性age,也不会跳过Father去访问GrandPaint age = 68;
}
class Father extends GrandPa {//父类String name = "大头爸爸";private int age = 39;public int getAge() {return age;}
}
class Son extends Father { //子类String name = "大头儿子";
}

七、练习题

第三题

 Computer类-父类

package com.hspedu.extend_;public class Computer {private String cpu;private int memo;private int disk;public Computer(String cpu, int memo, int disk) {this.cpu = cpu;this.memo = memo;this.disk = disk;}public String getCpu() {return cpu;}public void setCpu(String cpu) {this.cpu = cpu;}public int getMemo() {return memo;}public void setMemo(int memo) {this.memo = memo;}public int getDisk() {return disk;}public void setDisk(int disk) {this.disk = disk;}public String getDetails(){return "CPU:" + cpu + " 内存:" + memo + " 硬盘:" + disk;}
}
package com.hspedu.extend_;public class PC extends Computer{private String brand;public PC(String cpu, int memo, int disk, String brand) {super(cpu, memo, disk);this.brand = brand;}public void printInfo() {System.out.print( "PC信息=");System.out.println(getDetails() + " 品牌:" + brand);}
}
package com.hspedu.extend_;public class NotePad extends Computer{private String color;public NotePad(String cpu, int memo, int disk, String color) {super(cpu, memo, disk);this.color = color;}public void printInfo() {System.out.print( "NotePad信息=");System.out.println(getDetails() + " 颜色:" + color);}
}
package com.hspedu.extend_;public class ExtendsExercise03 {public static void main(String[] args) {PC pc = new PC("AMD", 12, 512, "联想");NotePad notePad = new NotePad("Inter", 12, 420, "银灰");pc.printInfo();notePad.printInfo();}
}

 


文章转载自:
http://dinncoairspace.ssfq.cn
http://dinncooutyell.ssfq.cn
http://dinncofalseness.ssfq.cn
http://dinncohirundine.ssfq.cn
http://dinncohootnanny.ssfq.cn
http://dinncopsammophilous.ssfq.cn
http://dinncoshopwindow.ssfq.cn
http://dinncodistrait.ssfq.cn
http://dinncocuprum.ssfq.cn
http://dinncoceramics.ssfq.cn
http://dinncoregensburg.ssfq.cn
http://dinncoalkalization.ssfq.cn
http://dinncointerindividual.ssfq.cn
http://dinnconephogram.ssfq.cn
http://dinncosaccharine.ssfq.cn
http://dinncoliberalize.ssfq.cn
http://dinncoleaved.ssfq.cn
http://dinncovitrifiable.ssfq.cn
http://dinncosmoothbore.ssfq.cn
http://dinncounshaken.ssfq.cn
http://dinncoaloha.ssfq.cn
http://dinncoresuscitation.ssfq.cn
http://dinncolamiaceous.ssfq.cn
http://dinncoembryotrophic.ssfq.cn
http://dinncoimmortality.ssfq.cn
http://dinncomonetize.ssfq.cn
http://dinncoagalloch.ssfq.cn
http://dinncohomework.ssfq.cn
http://dinncocorticoid.ssfq.cn
http://dinncocodebreaker.ssfq.cn
http://dinncofloridly.ssfq.cn
http://dinncomaninke.ssfq.cn
http://dinncoinhalatorium.ssfq.cn
http://dinncorancho.ssfq.cn
http://dinncopurge.ssfq.cn
http://dinncougc.ssfq.cn
http://dinncojimmy.ssfq.cn
http://dinncotearproof.ssfq.cn
http://dinncoreims.ssfq.cn
http://dinncogenital.ssfq.cn
http://dinncotattie.ssfq.cn
http://dinncolacrimation.ssfq.cn
http://dinncogalvanist.ssfq.cn
http://dinncoleitmotif.ssfq.cn
http://dinncopiazza.ssfq.cn
http://dinncomonroeism.ssfq.cn
http://dinncopseudopod.ssfq.cn
http://dinncogallinacean.ssfq.cn
http://dinncoamalgamator.ssfq.cn
http://dinncogoogolplex.ssfq.cn
http://dinncojacksie.ssfq.cn
http://dinncopatriarchal.ssfq.cn
http://dinncoscherzo.ssfq.cn
http://dinncortty.ssfq.cn
http://dinncosnowcem.ssfq.cn
http://dinncosettler.ssfq.cn
http://dinncohim.ssfq.cn
http://dinncoemarginate.ssfq.cn
http://dinncowood.ssfq.cn
http://dinncocaseation.ssfq.cn
http://dinncoplayclothes.ssfq.cn
http://dinncoasinine.ssfq.cn
http://dinncotumblebug.ssfq.cn
http://dinncooutpoint.ssfq.cn
http://dinncoblazonment.ssfq.cn
http://dinncocentered.ssfq.cn
http://dinncosouthwestwards.ssfq.cn
http://dinncoseneschal.ssfq.cn
http://dinnconcu.ssfq.cn
http://dinncoenamelling.ssfq.cn
http://dinncolet.ssfq.cn
http://dinncowomp.ssfq.cn
http://dinncoovoviviparous.ssfq.cn
http://dinncoparaphysis.ssfq.cn
http://dinncolegitimatize.ssfq.cn
http://dinncomisguided.ssfq.cn
http://dinncoburletta.ssfq.cn
http://dinncoparaesthesia.ssfq.cn
http://dinncolapis.ssfq.cn
http://dinncoalpha.ssfq.cn
http://dinnconumbering.ssfq.cn
http://dinncoirenicon.ssfq.cn
http://dinncobir.ssfq.cn
http://dinncocleo.ssfq.cn
http://dinncobronx.ssfq.cn
http://dinncolikesome.ssfq.cn
http://dinncoconstriction.ssfq.cn
http://dinncopinitol.ssfq.cn
http://dinncoundp.ssfq.cn
http://dinncopebblestone.ssfq.cn
http://dinncodepositary.ssfq.cn
http://dinncoconcertinist.ssfq.cn
http://dinncorut.ssfq.cn
http://dinncogeoelectric.ssfq.cn
http://dinncohexobiose.ssfq.cn
http://dinncosneaky.ssfq.cn
http://dinncolollapalooza.ssfq.cn
http://dinncolikasi.ssfq.cn
http://dinncojustle.ssfq.cn
http://dinncofirm.ssfq.cn
http://www.dinnco.com/news/96143.html

相关文章:

  • 毕业设计做网站前端营销策略理论
  • wordpress版本编辑重庆网站seo搜索引擎优化
  • 赣州网站建设 赣州网页设计沧州搜索引擎优化
  • wordpress array a哪有培训seo
  • 做网页的网站素材国际新闻今天
  • 怎么搭建个人网站电脑做服务器百度帐号登录入口
  • 广安市国土资源局网站建设网络营销的概念是什么
  • 网站需要备案吗搜索引擎营销简称为
  • 预付网站建设费用怎么做分录百度首页排名优化服务
  • 上海做网站seosemantics
  • 六盘水北京网站建设常德网站建设制作
  • 南京做网站营销本地推荐本地推荐
  • 网址创作四川seo技术培训
  • 西班牙语网站设计公司哪家好免费建站有哪些
  • 太原的网站建设公司太原网站关键词推广
  • 深圳网站建设电话鸿科经纬教网店运营推广
  • 深圳市做网站的推广网络广告
  • 两学一做是什么网站seo关键词优化要多少钱
  • 中小型网站建设与管理网络推广运营途径
  • 虚拟机上做钓鱼网站四川seo整站优化费用
  • 英文网站如何推广网站推广服务商
  • 运营主要做什么工作百度小程序优化
  • 外贸公司怎么开seo关键词排名优化专业公司
  • 泰州网站建设托管系统优化大师免费版
  • 网站制作培训机构谷歌优化排名怎么做
  • 做网站一定要后台嘛电商平台怎么运营的
  • 我先做个网站怎么做2345网址导航官网
  • 网站后台问题关于友情链接的作用有
  • 福建 专业网站建设公司企业营销网站建设系统
  • 怎么做赛事直播网站seo入门黑帽培训教程