继承已经全部写完了,接下来通过几个案例对继承问题做一个总结:

/*看程序写结果:A:成员变量   就近原则B:this和super的问题this访问本类的成员super访问父类的成员C:子类构造方法执行前(默认)先执行父类的无参构造方法D:一个类的初始化过程成员变量进行初始化默认初始化显示初始化构造方法初始化结果:fuzi302010
*/
class Fu{public int num = 10;public Fu(){System.out.println("fu");}
}
class Zi extends Fu{public int num = 20;public Zi(){//super();此时默认含有super();调用父类的无参构造方法。这里其实先进行分层初始化System.out.println("zi");}public void show(){int num = 30;System.out.println(num); //30System.out.println(this.num); //20System.out.println(super.num); //10}
}
class ExtendsTest {public static void main(String[] args) {Zi z = new Zi();z.show();}
}
/*学生案例和老师案例讲解学生:成员变量;姓名,年龄构造方法:无参,带参成员方法:getXxx()/setXxx()老师:成员变量;姓名,年龄构造方法:无参,带参成员方法:getXxx()/setXxx()看上面两个类的成员,发现了很多相同的东西,所以我们就考虑抽取一个共性的类:人:成员变量;姓名,年龄构造方法:无参,带参成员方法:getXxx()/setXxx()学生 继承 人老师 继承 人
*/
//定义一个人类
class Person{//姓名private String name;//年龄private int age;public Person(){}public Person(String name,int age){//杨道龙,24this.name = name;this.age = age;}public String getName(){return name;}public void setName(String name){this.name = name;}public int getAge(){return age;}public void setAge(int age){this.age = age;}
}
class Student extends Person{public Student(){//无参构造}public Student(String name,int age){//必须有参构造//杨道龙,24/*this.name = name;this.age = age;*///错误,私有的成员变量无法访问super(name,age);//去找父类中的有参构造,并把值传递过去}}
class Teacher extends Person{public Teacher(){}public Teacher(String name,int age){super(name,age);}}class ExtendsTest4{public static void main(String[] args){//方式一Student s1 = new Student();s1.setName("杨道龙");//对象调用方法。先在子类中找,找不到再去父类中找s1.setAge(24);//对象调用方法。先在子类中找,找不到再去父类中找。其实是赋值给了子类继承后的方法中了。System.out.println(s1.getName()+"----"+s1.getAge());//方式二Student s2 = new Student("杨道龙",24);System.out.println(s2.getName()+"----"+s2.getAge());//对象调用方法,先在子类中找,找不到,再去父类中找。继承关系//创建老师测试对象//方式一:Teacher t1 = new Teacher();t1.setName("孙晓晓");t1.setAge(23);System.out.println(t1.getName()+"----"+t1.getAge());//方式二Teacher t2 = new Teacher("孙晓晓",23);System.out.println(t2.getName()+"----"+t2.getAge());}
}
/*猫狗案例讲解先找到具体的事物,然后发现具体的事物有共性,才提取出一个父类。猫:成员变量:姓名,年龄,颜色构造方法:无参,带参成员方法:getXxx()/setXxx()eat()palyGame()狗:成员变量:姓名,年龄,颜色构造方法:无参,带参成员方法:getXxx()/setXxx()eat()lookDoor()共性:成员变量:姓名,年龄,颜色构造方法:无参,带参成员方法:getXxx()/setXxx()eat()把共性定义到一个类中,这个类的名字叫:动物。动物类:成员变量:姓名,年龄,颜色构造方法:无参,带参成员方法:getXxx()/setXxx()eat()猫:    构造方法:无参,带参成员方法:palyGame()狗:构造方法:无参,带参成员方法:lookDoor()
*/
//定义动物类
class Animal {//姓名private String name;//年龄private int age;//颜色private String color;public Animal() {}public Animal(String name,int age,String color) {this.name = name;this.age = age;this.color = color;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public void eat() {System.out.println("不要睡了,该吃饭了");}
}//定义猫类
class Cat extends Animal {public Cat() {}public Cat(String name,int age,String color) {super(name,age,color);}public void playGame() {//猫特有的方法,动作System.out.println("猫玩英雄联盟");}
}//定义狗类
class Dog extends Animal {public Dog() {}public Dog(String name,int age,String color) {super(name,age,color);}public void lookDoor() {System.out.println("狗看家");}
}//测试类
class ExtendsTest5 {public static void main(String[] args) {//测试猫//方式1Cat c1 = new Cat();c1.setName("Tom");c1.setAge(3);c1.setColor("白色");System.out.println("猫的名字是:"+c1.getName()+";年龄是:"+c1.getAge()+";颜色是:"+c1.getColor());c1.eat();c1.playGame();System.out.println("---------------");//方式2Cat c2 = new Cat("杰瑞",5,"土豪金");System.out.println("猫的名字是:"+c2.getName()+";年龄是:"+c2.getAge()+";颜色是:"+c2.getColor());c2.eat();c2.playGame();//作业:测试狗//方式一Dog d1 = new Dog();d1.setName("皮毛");d1.setAge(5);d1.setColor("黑色");System.out.println("狗的名字是"+d1.getName()+",他今年"+d1.getAge()+"岁了,它的颜色是:"+d1.getColor());d1.eat();d1.lookDoor();//方式二Dog d2 = new Dog("皮毛2",4,"白色");System.out.println("狗的名字是"+d2.getName()+",他今年"+d2.getAge()+"岁了,它的颜色是:"+d2.getColor());d2.eat();d2.lookDoor();}
}

《java入门第一季》之面向对象(继承总结)相关推荐

  1. 《java入门第一季》之面向对象面试题(继承中构造方法的关系)

    /*继承中构造方法的关系A:子类中所有(子类的有参和无参)的构造方法(默认都会访问父类)中(空参数)的构造方法,默认访问父类空参数构造,不默认访问有参数构造B:为什么呢?因为子类会继承父类中的数据,可 ...

  2. 《java入门第一季》之面向对象

    之前的代码描述都是基于面向过程的,今天开始正式进入面向对象的世界.什么是对象?首先要区分类和对象的概念-- 现实世界中是如何描述一个事物的? 举例:学生 姓名,年龄,性别... 学习,吃饭,睡觉 属性 ...

  3. 《java入门第一季》之面向对象(包概述)

    由于eclipse等ide的强大功能,使得建包,导包用一些快捷键就能完成.这里对包的概念做稍微的叙述,了解即可: 分包后使得项目更加清晰,提高代码维护性. 包:         A:其实就是文件夹   ...

  4. 《java入门第一季》之面向对象(final关键字)

    /*final可以修饰类,方法,变量特点:final(可以修饰类),该(类)(不能被继承).一旦修饰了一个类,这个类就不能被继承了!final以修饰方法,该方法可以被继承但是不能被重写.(覆盖,复写) ...

  5. 《java入门第一季》之面向对象(static关键字)

    /*static的特点:(它可以修饰成员变量,还可以修饰成员方法)A:随着类的加载而加载回想main方法.B:优先于对象存在C:被类的所有对象共享举例:班级的学生应该共用同一个班级编号.其实这个特点也 ...

  6. 《java入门第一季》之面向对象综合小案例

    需求: /*     教练和运动员案例         乒乓球运动员和篮球运动员.         乒乓球教练和篮球教练.         跟乒乓球相关的人员都需要学习英语.         分析,这 ...

  7. 《java入门第一季》之面向对象this关键字

    /*起名字要做到见名知意.this:是当前类的对象引用.简单的记,它就代表当前类的一个对象.注意:谁调用这个方法,在该方法内部的this就代表谁.this的场景:解决局部变量隐藏成员变量 */ //定 ...

  8. 《java入门第一季》之java语法部分小案例

    到这里举一个小例子把语法部分梳理一下,下一节开始进入java正式基础--面向对象的学习整理. 案例: /*某个公司采用公用电话传递数据信息,数据是小于8位的整数,为了确保安全,在传递过程中需要加密,加 ...

  9. 慕课网Java入门第一季教程(六)数组

    目录 什么是数组 如何使用数组 1.声明数组 2.分配空间 3.赋值 4.直接创建数组并赋值 使用循环操作数组 使用 Arrays 类操作 Java 中的数组 1.排序 2.将数组转换成字符串 使用f ...

最新文章

  1. 我在兰亭这三年之第一个项目
  2. 核酸和CT同时用, 听谁的?——兼释一天新增一万多
  3. 华视电子读卡器web开发_业界动态:华视电子官方微信公众号电子书架正式上线...
  4. 【图像分割模型】全景分割是什么?
  5. 数据库的那些事(全是干货)
  6. THINKPHP增删改查--(改)
  7. ubuntu经常提示:检测到系统程序出现问题
  8. 【HDU - 4990】 Reading comprehension (构造+矩阵快速幂)
  9. pip安装wxpython报错_Ubuntu 上搭建robotframework
  10. Windows Embedded Standard 7 帮零售业快速抢占市场
  11. 拓端tecdat|R语言使用Metropolis- Hasting抽样算法进行逻辑回归
  12. mvc路由原理 php_s-blog博客系统开发之前端路由配置
  13. 腾讯云和百度贴吧web端支付成功页面模板(根据实际页面修改整理)
  14. 华为防火墙NAT配置及简介
  15. 墨瞳漫画 升级vue2 踩坑
  16. java category类_Category(类别)
  17. xxljob从入门到精通-全网段最全解说
  18. 同一个局域网怎么计算机共享打印机,如何在同一个局域网内将多台计算机连接到 USB 共享打印机,实现共同打印...
  19. iOS开发 区分Home键和锁屏键事件
  20. [USF-XSim-62] 'elaborate' step failed with error(s).使用vivado进行verilog实验,无法进行仿真,如何解决?

热门文章

  1. (万能通用模板)--- SpringBoot导入、导出Excel文件
  2. 随笔(关于UE<ultraedit>的列模式使用及EXCEL使用遇到的简单问题)
  3. 数据结构51题之栈和队列18题
  4. 交替性注意力_研究发现大脑在专注与分心之间不停交替,注意力才能达到最佳状态...
  5. 物理Standby Switchover 角色转换
  6. layer组件的使用
  7. stm32f4 SPI DMA FLASH 传输调试
  8. sap税码配置_SAP税务管辖码Tax Jurisditcion code功能(2)
  9. 怎么生产mysql.scok_如何更改生产MySQL数据库库表的字符集
  10. Unity3D战争迷雾效果