🍬 博主介绍👨🎓 博主介绍:大家好,我是 hacker-routing ,很高兴认识大家~
✨主攻领域:【渗透领域】【应急响应】 【python】 【VulnHub靶场复现】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
目录
前言:
封装:
继承
继承的好处
继承的格式
什么时候使用继承
继承的特点
练习
1、画图
2、代码
前言:
封装:
对象代表什么,就得封装对应的数据,并提供数据对应的行为
封装的主要目的是隐藏对象的内部表示和状态,通过定义公共的方法(也称为访问器方法或 getter/setter 方法)来控制对数据的访问和操作,从而保证数据的安全性和一致性,避免直接对数据进行非法的修改。
Java 提供了三个关键字来实现封装:private、protected 和 public。
- private:私有访问修饰符,用于限制成员的访问范围仅限于所属类内部。私有字段和方法只能在所属类的内部访问,无法从外部直接访问。
- protected:受保护的访问修饰符,用于限制成员的访问范围仅限于所属包内和子类内部。受保护的字段和方法可以在同一包内的其他类中访问,也可以在子类中访问。
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()
继承
继承的好处
- 提高代码的复用性(减少代码冗余,相同代码重复利用)。
- 使类与类之间产生了关系。
继承的格式
通过 extends
关键字,可以声明一个子类继承另外一个父类,定义格式如下:
class 父类 {...
}class 子类 extends 父类 {...
}
需要注意:Java是单继承的,一个类只能继承一个直接父类,跟现实世界很像,但是Java中的子类是更加强大的。
继承的格式
public class 子类 extends 父类 {}public class student extends person {}
student称为子类,person称为父类
什么时候使用继承
继承的特点
- Java只支持单继承,不支持多继承,但是支持多层继承(就相当于孙子和爷爷的关系)
- 多层继承:子类A继承继承父类B,父类B可以继承父类C
每一个类都直接或者间接地继承object
- 子类只能访问父类中的非私有的成员(public公共,private私有的)
public class A {}
##像这样的,A看着是没有父类,但是默认没有,就继承object类
下面这张图片,很形象的体现了Java只支持单继承,不支持多继承
但是我们在学习C语言的时候,C语言是允许子类有多个父类的
练习
现在有四种动物:布偶猫、中国狸花猫、哈士奇、泰迪。
暂时不考虑属性,只要考虑行为。
请按照继承的思想特点进行继承体系的设计。
四种动物分别有以下的行为:
-
布偶猫:吃饭、喝水、抓老鼠
-
中国狸花猫:吃饭、喝水、抓老鼠
-
哈士奇:吃饭、喝水、看家、拆家
-
泰迪:吃饭、喝水、看家、蹭一蹭
1、画图
我们先进行画图,然后进行代码的分析与讲解
2、代码
这里总共需要写8个代码
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();}
}