JAVA 面向对象(五)
文章目录
- 1 继承
- 调用空参,有参构造方法
1 继承
1. 什么是继承:子类可以继承父类共有的属性和方法。
- 继承关键字是:***extends***
- 子类不能继承父类的构造方法。也就是说super()不是继承,是调用。
- 继承的优点:实现类的重用,减少代码的冗余。
- 子类继承了父类后:
子类可以访问父类中的公有的属性,对象可以直接访问父类的属性
【子类可以访问父类中的方法】。 对象可以直接访问父类的方法。
子类可以重写 父类中的方法。
2. 什么叫做重写:
- 子类重写了父类中的方法:方法名称相同,参数列表相同,返回值相同。
3. 什么叫做重载:
- 仅仅在一个类中,方法名相同,参数列表不同,与返回值无关。
4. 什么叫做构造方法:
- 在一个类中,方法名称与类名相同,无返回值的方法,叫做构造方法。
————————————————————————
- this 当前对象
- super 父类对象
- this() 当前对象的构造方法。
- super() 父类对象的构造方法。
子类的构造方法中,会默认 调用父类的无参构造方法super()。可以指明调用父类的有参构造方法。
- super();必须出现在第一行。
问:为什么子类会首先调用父类的构造方法?
- 因为在继承关系中,必须现有父,再有子。
————————————————————————
- Object 是所有类的(超类) (基类) (父类)※※※
示例一:
- 子类绝不能继承父类的构造方法。
- 我是父类的无参构造方法。
- 我是子类无参构造方法
- 我是父类的无参构造方法。
我是子类的有参构造方法。
子类继承了父类后,默认在子类的构造方法中调用父类的无参构造方法()
代码如下
下面展示一些 子类不能传递给父类构造方法代码片
。
子类 学生类
public class Student extends People{
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Student() {
super();// 默认存在
System.out.println("我是子类无参构造方法");
}
public Student(String name) {
super(10);// 默认存在
System.out.println("我是子类的有参构造方法。");
this.name = name;
}
}
构造方法People类
public class People {
private int id;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public People() {
System.out.println("我是父类的无参构造方法。");
}
public People(int id) {
System.out.println("我是父类有参构造方法");
this.id = id;
}
Test 测试类
public class Test {
public static void main(String[] args) {
Student student = new Student("zhangsan");
}
}
打印输出结果
链接: link.
—————————————————————————
示例二:
student学生类 子类
public class Student extends People{
private String stuNo;
// 子类构造方法 无惨
public Student(){
System.out.println("学生类的无参构造方法被调用。");
}
// 知识点: this() super() 各自的作用。、
public Student(String name){
//this(); // this() 调用当前的构造方法。
//super(); // super() 调用父类的构造方法。
}
// 有参构造方法
public Student(String name,int age, String id, String sex, String stuNo){
// 使用super关键字
super(name,age,id,sex);// 首先调用父类中的构造方法。
this.stuNo = stuNo;
}
// 知识点: thissuper 各自的方法
public void show(){
System.out.println(this.stuNo);// 当前对象。
System.out.println(super.getName());
}
}
封装 继承
public class People {
private String name;
private int age;
private String id;
private String sex;
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 getId(){
return id;
}
public void setId(String id){
this.id = id;
}
public String getSex(){
return sex;
}
public void setSex(String sex){
this.sex = sex;
}
public People(){
}
public People(String name, int age, String id, String sex){
this.name = name;
this.age = age;
this.id = id;
this.sex = sex;
}
}
Test 测试类
public class Test {
public static void main(String[] args) {
People people = new People();
Student student = new Student("张三",18,"1001","女","1001");
System.out.println(student.getName());
student.show();
}
}
打印结果
链接: link.
————————————————-—————————
示例三:
下面分别是三个类与测试类
继承表示:子类可以继承父类中公有的属性和方法。
- 父类:人类;
- 子类:学生类 继承 人类。能有拥有人类的属性。
- 老师类
下面展示一些 People父类 人类 代码片
。
public class People {
// 公有的属性
public String name;
public int age;
public String sex;
public String id;
// 公有的方法
public void disolay(){
System.out.println("人可以思考");
}
}
下面展示一些 Student 子类 学生类代码片
。
public class Student extends People{// 学生类继承人类
public String stuNo;// 学号
public void show(){
System.out.println("我的姓名:"+name+"\t学号"+stuNo);
}
// 子类重写父类中的方法。
public void display(){
System.out.println("学生可以进行思考");
}
}
下面展示一些 Teacher 教师类 代码片
。
public class Teacher extends People{
public String major;// 专业
}
下面展示一些 测试类 代码片
。
public class Test {
public static void main(String[] args) {
// 实例化人类
People people = new People();
//实例化学生类
Student student = new Student();
//子类对象可以访问父类中的属性
student.name = "金莲";
student.age = 16;
student.id = "34567893456890";
student.sex = "妖";
student.stuNo = "1001";
System.out.println("学生姓名:"+student.name+"\t学号:"+student.stuNo);
// 子类对象中的方法,可以访问父类中的属性
student.show();
// 子类对象可以调用父类中的方法,当子类中拥有和父类相同的方法时,子类将覆盖父类中的方法。
student.display();
}
}
打印结果为:
链接: link.
————————————————————————
2. 调用空参,有参构造方法
- 每个类,在java中都叫做javaBean
- java 咖啡
- Bean 豆
- javaBean 咖啡豆
下面展示一些 内联代码片
。
public class Book {
//私有属性
private int id;
// get set方法
public int getId(){
return id;
}
public void setId(int id){
this.id = id;
}
// 无参构造方法
public Book(){
}
//有参构造方法
public Book(int id){
this.id = id;
}
}
测试类
代码如下:
public class Test {
public static void main(String[] args) {
// 调用空参构造方法
Book book = new Book();
// 有参构造方法
Book book2= new Book(1001);
}
}、
————————————————————————
以上为第四天JAVA 面向对象 —继承 等等等…………的大概了解,希望各位大佬多多指点哦~~!!!
还没有评论,来说两句吧...