Java中面向对象的三大特征之继承和封装

java的面向对象有三大特征继承、封装、多态

下面通过一个例子把java的继承和封装表示出来
继承是指子类继承父类的一些属性和方法。java的继承通过extends关键词来实现,实现继承的类称为子类,被继承的类叫做父类,有的也称为基类(baseclass)。
继承的作用:描述类和类之间的关系;降低类和类之间的重复代码。
封装就例如我们把电脑主机的cpu、内存、显卡、电源等封装到主机中的原理。
封装的好处:安全、隔离变化、操作简单、可重用;封装的原则:该隐藏的隐藏起来,该暴露的暴露出来。

下面通过一个简单例子把继承到封装的简单过程表示出来

下面展示一些
内联代码片

//person表示父类 private表示父类的一些属性被隐藏起来了
public class Person {
	private String name;
	private  String gender;
	private int age;
	public Person() {
		System.out.println("这是父类构造函数");
		// TODO Auto-generated constructor stub
	}
	public Person(int age) {
		System.out.println("这是父类构造函数");
	}
	
	public Person(String gender, int age) {
		this.gender = gender;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		this.gender = gender;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	 public void eat() {
		 System.out.println("人会吃饭");
	 }
	 public void sleep() {
		 System.out.println("人会睡觉");
	 }
	

下面展示一些 内联代码片

Student类继承了Person、它也有属于自己私有的属性同样被隐藏起来这个过程就表示继承
public class Student extends Person{
    private int number;

	public Student(int age) {
		super(99);
		System.out.println("这是子类构造函数2");
	}

	public int getNumber() {
		return number;
	}
	public void setNumber(int number) {
		this.number = number;
	}
	//方法的重写、表示父类中的eat()方法被子类重写
	@Override
    public void eat() {
    	System.out.println("人会吃饭");
    }

下面展示一些 内联代码片

编写一个出口Test类用于对父类和子类中的属性和方法的调用(这里就类似与电脑主机把各个组件封装在机箱里留下一些接口来使用)
public class Test {
	public static void main(String[] args) {
		Student stu = new Student(99);
		stu.setName("张三");
		
		//类中的私有属性可以通过set和get获取
		String name = stu.getName();
		System.out.println(name);
		stu.eat();
		
	}
}
把上面的Person类和Student类通过extends连接起来让他们产生关联这也多态的必要条件之一,方法的重写也是多态产生的条件这二者缺一不可;在通过属性的私有化从而满足封装的条件最后通过主方法(Test类中)留下出口来调用他们这就是封装

猜你喜欢

转载自blog.csdn.net/fdbshsshg/article/details/112852135