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

/*看程序写结果: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. gpio pin和pad的区别
  2. h5在线浏览word_怎样将PDF在线转换成Word?教你成为一个高手的方法
  3. PaddlePaddle 中的若干基础命令中的问题
  4. java fork join原理_Java并发Fork-Join框架原理解析
  5. JavaScript常用函数总结
  6. Python Django session存取值代码演示及jsonpickle序列化
  7. 零基础怎么自学Java?自学Java有什么误区?
  8. 记录SQL server学习的存储过程的摘录
  9. 分布式与人工智能课程(part8)--Pandas绘图
  10. 如何写出高性能SQL语句
  11. 使用Google Guice消除实例之间的歧义
  12. 系统服务器地云盘上,系统服务器地云盘上
  13. 【pytorch】pytorch-LSTM
  14. Calendar类方法——编写万年历的两种方式
  15. ae2018怎么打开2019_AE CC 2019新功能全面解析!
  16. Windows注册表下找不到指定路径,可能是注册表重定向问题。
  17. 生来只为丈量天空,开普勒的传奇一生
  18. 跨考计算机—努力换青春无悔(纪录篇)
  19. MySQL 查询执行流程
  20. html vw选择器,使用vw、vh的使用教程

热门文章

  1. linux tail -f命令
  2. Python SSL Socket长连接加密通讯
  3. 健美运动员赛前脱水断碳_健美运动员过度脱水赛场上晕倒,赛场下的训练更是在拼命!...
  4. ArcGIS基础:使用线段分割面数据操作
  5. 【监控利器Prometheus】——Prometheus+Grafana监控服务器资源
  6. python制作桌面小程序_python2.7+PyQt5 制作桌面便签小程序
  7. GIS技巧100例06-ArcGIS快速批量将PDF转图片
  8. 一篇文章讲透线上应用监控
  9. ENVI教程:InSAR技术选择GCP ,用于轨道精炼
  10. InSAR-DInSAR 技术细节(七)轨道误差及其处理办法