面向对象三大特征

面向对象三大特征

1. 封装
封装:将相同的功能进行封装,便于下一次的调用
有代码的封装,功能的封装,分模块,分包,分工程。
封装的步骤:
1)使用private修饰需要被封装的属性。
2)提供一个公共的方法设置或者获取该私有的成员属性。
命名规范:
public set属性名();
public get属性名();
封装的好处:
1)提高数据的安全性
2)操作简单
3)隐藏了实现

2. 继承
继承是封装的又一体现,可以通过继承实现对类的增强。
主要通过方法的重写与重载,方法的重写是在父子类中,方法重载则是方法名称一样,参数列表不一样(数量,类型,顺序),与返回值无关。可以使你的代码更健壮,功能更具备完整性。
1.好处:
A:提高了代码的复用性
B:提高了代码的维护性
C:让类与类之间产生了关系,是多态的前提

类与类产生了关系,其实也是继承的一个弊端:
类的耦合性增强了。

开发的原则:低耦合,高内聚。
耦合:类与类的关系
内聚:就是自己完成某件事情的能力
2.Java中继承的特点:
A:Java只支持单继承,不支持多继承。
有些语言是支持多继承,格式:extends 类1,类2,…
B:Java支持多层继承(继承体系)
class Father {}
class Mother {}
class Son exnteds Father {} //正确的
class Son extends Father,Mother {} // 错误的
3.继承的注意事项:
A:子类只能继承父类所有非私有的成员(成员方法和成员变量)
B:子类不能继承父类的构造方法,但是可以通过super(马上讲)关键字去访问父类构造方法。
C:不要为了部分功能而去继承

		class A {
			public void show1(){}
			public void show2(){}
		}
		class B {
			public void show2(){}
			public void show3(){}
		}
		
		//我们发现B类中出现了和A类一样的show2()方法,所以,我们就用继承来体现
		class B extends A {
			public void show3(){}
		}

这样其实不好,因为这样你不但有了show2(),还多了show1()。
有可能show1()不是你想要的。

那么,我们什么时候考虑使用继承呢?
继承其实体现的是一种关系:“is a”。
Person
Student
Teacher
水果
苹果
香蕉
橘子

采用假设法。
如果有两个类A,B。只有他们符合A是B的一种,或者B是A的一种,就可以考虑使用继承

3. 多态
多态指的是以相同的方法处理来自不同类的对象。为使多态能运行,这些不同的类必须是从同一个基类中派生出来的。
使用多态的注意事项:
情况1:

	class Father {
		public void show() {
			System.out.println("Father show");
		}
	}

	class Son extends Father {
		
		public void show() {
			System.out.println("Son show");
			
		}

		
	}


	main(){

		Father f=new Son();
		f.show();--->  son show

		//在多态中,对于成员方法而言,编译看左边  运行也看右边
	}

	=================================================================
	class Father {
		public int money=100;
	}

	class Son extends Father {
		
		public int money=10000;

		
	}

	main(){

		Father f=new Son();
		syso(f.money);----------->100

		//在多态中,对于成员变量而言,编译看左边  运行也看左边
	}

猜你喜欢

转载自blog.csdn.net/qq_41740138/article/details/82792465