面向对象三大特征的封装和继承:
封装
封装:什么是封装,封装是指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法。
通俗一点来说就是把类中的某些信息进行隐藏,从而使外部程序不能直接对这些信息进行直接的访问,只能通过类中定义的方法对这些隐藏的信息进行操作和访问。
目的:使其他类只能通过操控类中的对象来直接达到目的,不能看到具体的实现和属性,从而提高了程序的安全性和便利性。隐藏信息,实现便利。
封装的实现:
public class Test2 {
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) {
this.age = age;
}
}
封装的实现就是使用private关键字修饰属性,使属性私有化,这样就能使其他类无法访问到本类的属性,然后提供一个公开的方法使其他类只能通过这些方法访问这些属性。
继承:
继承的概念
继承是java面向对象编程技术的一块基石,因为它允许创建分等级层次的类。
继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例域和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
例如:
兔子和羊属于食草动物类,狮子和豹属于食肉动物类。
食草动物和食肉动物又是属于动物类。
所以继承需要符合的关系是:is-a,父类更通用,子类更具体。
虽然食草动物和食肉动物都是属于动物,但是两者的属性和行为上有差别,所以子类会具有父类的一般特性也会具有自身的特性。
继承的格式:
class 父类 {
}
class 子类 extends 父类 {
}
继承的作用:
1.多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些相同属性和行为,只要继承那个类即可。
2.在Java中通过extends关键字可以实现类与类的继承。
例如:class 子类名 extends 父类名 {}
3.单独的这个类称为父类,基类或者超类;这多个类可以称为子类或者派生类。
4.有了继承以后,我们定义一个类的时候,可以在一个已经存在的类的基础上,还可以定义自己的新成员。
继承的实现:
父类:
public class Animal {
String name;
int age;
}
子类
public class Herbivore extends Animal{
public void run() {
System.out.println(name + "再跑");
}
}
public class Carnivore extends Animal{
public void eat() {
System.out.println(name + "吃掉兔子");
}
}
定义测试类测试:
public class Test2 {
public static void main(String[] args) {
Herbivore herbivore = new Herbivore();
herbivore.name = "兔子";
herbivore.run();
Carnivore carnivore = new Carnivore();
carnivore.name = "老虎";
carnivore.eat();
}
}
运行结果: