java基础第一章 类与类的关系
2020-02-17 04:50
453 查看
第一小节 组合关系
- 组合关系的概述:
1.组合关系是类与类关系的一种 2.当一个类中的成员变量是另外一个类的时候,这两个类的关系就是组合关系
- ==代码展示==:
手机类 public class Phone { private String pingpai; private String jiage; }
人类 public class Person { private String name; private int age; private Phone phone;//人类的成员变量是手机类 }
==此时这个手机类和人类 就是组合关系==
第二小节 继承关系
==概述==
1.继承是面向对象的三大特征之一 2.继承类与类关系的一种 3.从类与类设计的关系来看,子类必须是父类的一种,才可以使用继承
- ==好处==
1.提高了代码的复用性 2.提高了代码的扩展性 3.为多态提供前提
- ==特点==
1.子类拥有父类(除构造方法外)的所有成员变量和成员方法 2.子类可以拥有自己的成员变量和成员方法,既对父类的扩展 3.子类可以使用自己的方式去实现父类中的方法(方法重写) 3.1在父类方法满足不了子类的需求的时候需要方法重写 3.2在方法重写的时候,调用方法不再调用父类方法,只能调用子类的方法 即使子类有方法声明一样的方法,都不属于重写 3.4子类重写方法时的权限修饰符要大于或等于 父类的权限修饰符 public ->protected->默认->priva 4.子类不能继承父类的构造方法,但是可以访问
- ==格式==
public Class 子类 extends 父类{ }
==注意事项==
java只支持单继承,不支持多继承
但是可以多层继承
代码展示
继承的关系代码 (父类) public class Person { private String name; private String id; private double salary; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } public void work() { System.out.println("吃饭睡觉打豆豆"); } (子类) public class Teacher extends Person { } 这个时候子类就拥有父类的除构成方法外的所有成员变量和成员方法 (测试类) public static void main (String[] agrs){ //通过子类匿名对象直接调用父类的成员变量 new Teacher().getId; //通过子类匿名对象直接调用父类中的成员方法 new Teacher().work(); }
方法重写
- ==概念==
在子类中存在和父类继承方法有相同的返回类型,相同的方法名,相同的参数列表(参数类型相同,参数个数相同),这个就叫方法重写
在父类的方法不能满足子类需求的时候 进行方法重写
==书写格式==
除了方法体不同,其他完全一样
==注意事项==
方法重写: 1.方法重写之后,子类不能再调用父类的成员方法 2.子类方法重写是给于的访问权限要大于或者等于父类方法的访问权限 (建议 直接和父类的权限一样) public ->protected->默认->private 3.父类方法名使用private修饰的方法子类不能重写,即使方法声明完全一样也不属于重写。属于另写了一个方法
代码展示
继承的关系代码 (父类) public class Person { private String name; private String id; private double salary; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getId() { return id; } public void setId(String id) { this.id = id; } public double getSalary() { return salary; } public void setSalary(double salary) { this.salary = salary; } public void work() { System.out.println("吃饭睡觉打豆豆"); } (子类) public class Teacher extends Person { //方法重写 @Override public void work() { System.out.println("吃饭睡觉打豆豆,打完豆豆看电视"); }
this和super关键字
1.this和super方法普通成员
this.成员变量名
可以访问本类对象的成员变量
this.成员方法()
可以调用本类对象成员方法
super.成员变量名
可以访问父类的成员变量
super.成员方法()
可以调用父类的成员方法
2.参数列表
super(参数列表)
可以访问父类的构造方法
this(参数列表)
可以访问本类中的构造方法
3.注意事项
子类的每个构造方法中均有默认的super(),调用父类的空参构造。
手动调用父类构造会覆盖默认的super()。
在构造方法中,如果通过this或super调用构造方法,则this和super必须是处在有效语句中的 第一行。且this和super不能同时存在。
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- java栈中的push,add,peek,pop
- java中prepareStatement与createStatement的区别
- JDK8新增getOrDefault使用方法
- Java动态代理底层机制浅析
- Spring AOP原理和用法
- Spring三种注入方式
- JavaSE多态
- java和.net的对象类型转换浅谈
- SpringMVC工作流程及代码分析
- No qualifying bean of type 'org.springframework.mail.javamail.JavaMailSender' available: expected at...
- 宠物领养网站(一):简 4000 单搭建SpringBoot+JPA+Gradle+Mysql项目
- 解决 https://start.spring.io 访问报错问题
- 宠物领养网站(二):SpringBoot支持JSP开发配置
- JDK,JRE,JVM的区别与联系
- java中 equals 和 hashcode 的关系
- java知识点总结
- java实现九九乘法表-超简单的一目了然
- Java验证码读取
- java界面实现骰子比赛改进
- BES-多模块Springboot项目MyBatis通用Mapper配置(Controller Service Dao在不同子模块中)