【精选】java继承、object、封装初阶(子类,父类继承)

 博主介绍

‍ 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
点赞➕评论➕收藏 == 养成习惯(一键三连)
欢迎关注一起学习一起讨论⭐️一起进步文末有彩蛋
作者水平有限,欢迎各位大佬指点,相互学习进步!


目录

前言:

封装:

继承

继承的好处

继承的格式

什么时候使用继承

继承的特点

练习

1、画图

2、代码


前言:

封装:

对象代表什么,就得封装对应的数据,并提供数据对应的行为

封装的主要目的是隐藏对象的内部表示和状态,通过定义公共的方法(也称为访问器方法或 getter/setter 方法)来控制对数据的访问和操作,从而保证数据的安全性和一致性,避免直接对数据进行非法的修改。

Java 提供了三个关键字来实现封装:private、protected 和 public

  1. private:私有访问修饰符,用于限制成员的访问范围仅限于所属类内部。私有字段和方法只能在所属类的内部访问,无法从外部直接访问。
  2. protected:受保护的访问修饰符,用于限制成员的访问范围仅限于所属包内和子类内部。受保护的字段和方法可以在同一包内的其他类中访问,也可以在子类中访问。
  3. public:公共访问修饰符,用于标识成员可以在任何位置被访问。公共字段和方法可以在任何位置访问,包括外部类、其他类和其他包。
public class Person {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if (age > 0) {
            this.age = age;
        }
    }
}

在上述示例中,字段 name age 被声明为私有字段,并提供了公共的访问器方法 getName()setName()getAge()setAge()

继承

继承的好处

  1. 提高代码的复用性(减少代码冗余,相同代码重复利用)。
  2. 使类与类之间产生了关系。

继承的格式

通过 extends 关键字,可以声明一个子类继承另外一个父类,定义格式如下:

class 父类 {
  ...
}

class 子类 extends 父类 {
  ...
}

需要注意:Java是单继承的,一个类只能继承一个直接父类,跟现实世界很像,但是Java中的子类是更加强大的。

继承的格式

public class 子类 extends 父类 {}

public class student extends person {}

student称为子类person称为父类

什么时候使用继承

【精选】java继承、object、封装初阶(子类,父类继承)_第1张图片

继承的特点

  • Java只支持单继承,不支持多继承,但是支持多层继承(就相当于孙子和爷爷的关系)
  • 多层继承:子类A继承继承父类B,父类B可以继承父类C
  • 每一个类都直接或者间接地继承object
  • 子类只能访问父类中的非私有的成员(public公共,private私有的
public class A {}
##像这样的,A看着是没有父类,但是默认没有,就继承object类

下面这张图片,很形象的体现了Java只支持单继承,不支持多继承

但是我们在学习C语言的时候,C语言是允许子类有多个父类的

【精选】java继承、object、封装初阶(子类,父类继承)_第2张图片

练习

现在有四种动物:布偶猫、中国狸花猫、哈士奇、泰迪。

暂时不考虑属性,只要考虑行为。

请按照继承的思想特点进行继承体系的设计。

四种动物分别有以下的行为:

  • 布偶猫:吃饭、喝水、抓老鼠

  • 中国狸花猫:吃饭、喝水、抓老鼠

  • 哈士奇:吃饭、喝水、看家、拆家

  • 泰迪:吃饭、喝水、看家、蹭一蹭

1、画图

我们先进行画图,然后进行代码的分析与讲解

【精选】java继承、object、封装初阶(子类,父类继承)_第3张图片

2、代码

这里总共需要写8个代码

【精选】java继承、object、封装初阶(子类,父类继承)_第4张图片

1、Animal

//权限修饰符
//private修饰的话:子类无法访问,private是私有的

//注意:
//子类只能访问父类中非私有的方法
package demon;

public class Animal {

    //权限修饰符
    //private修饰的话:子类无法访问,private是私有的

    //注意:
    //子类只能访问父类中非私有的方法

    public void eat(){
        System.out.println("吃东西");
    }
    public void drink(){
        System.out.println("喝水");
    }
}

2、Cat

package demon;

public class Cat extends Animal{
    public void catchmouse(){
        System.out.println("猫在抓老鼠");
    }
}

3、Dog

package demon;

public class Dog extends Animal{
    public void lookhome(){
        System.out.println("狗看家");
    }
}

4、Lihua

package demon;

public class Lihua extends Cat{

}

5、Hahky

package demon;

public class Hahky extends Dog{
    public void breakhome(){
        System.out.println("哈士奇在拆家");
    }
}

6、buermao

package demon;

public class buermao extends Cat{

}

7、Tedy

package demon;

public class Tedy extends Dog{
    public void touch(){
        System.out.println("泰迪在乱蹭");
    }
}

8、测试Test

package demon;

public class Test {
    public static void main(String[] args) {
        //创建对象,并调用方法


        //1.创建布偶猫的对象
        buermao bu = new buermao();
        bu.catchmouse();
        bu.eat();
        bu.drink();
        System.out.println("----------------------------------------------");
        //2.创建哈士奇的对象
        Hahky h = new Hahky();
        h.breakhome();
        h.lookhome();
        h.eat();
    }
}

【精选】java继承、object、封装初阶(子类,父类继承)_第5张图片

你可能感兴趣的:(windows,linux系统开发,web,小白学JAVA,java,开发语言,网络,linux,windows,网络协议,object)