总结回顾
在java的三大特性之中,基础是封装,关键是继承,核心是多态。
【封装】
官方解释:隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。
通俗理解:把数据、函数、以及实现过程等装在一个用于存储数据的盒子中,看不见其中的具体东西,对我们来说是“透明”的,但为了使用而设定多个“小口”,也就是用通过已经定义的接口对内部数据进行访问。
【类和对象】
类 :是具有相同特征(属性)和行为(方法)的对象的集合,简言之,它是具有相同类型对象的抽象,描述对象的模板。
对象是客观存在的具体事物 ,在java语言中是类的实例化,通过对象去访问封装在内的数据,获得类内部的成员方法和属性。
重载:发生于同一个类,方法和方法之间的一种关系。这些方法的名字是相同的,不同的是方法的参数的类型、排序以及个数。
作用:当我们知道了方法的功能就可以通过传递不同的参数,去自动调用了所对应的方法。
-
`
public int add (int a ,int b){
int c = a + b; return c;
}
// 重载
public double f (double a ,idouble b,double c){double f = a + b + c; returnf;
}
-
`
【继承】
官方解释:继承是指一个对象直接使用另一对象的属性和方法。
通俗理解:继承是一种关系,至少是包含两个类,子类可以继承父类的方法和属性。继承只存在一对多,而不存在多对一(一个子类只能有一个父类)。
重写:子类方法和父类方法之间的一种关系。
- 作用: 父类有一个getMoney方法,子类也有getMoney方法,但子类还需要不同于父类方法的功能,这时就需要重写。简言之,就是具有相同方法名(参数类型、排序、个数相同),方法体不一样。
`
class Father{ //父类
public String house = "别墅";
public int money;
public Father(){
}
public void datePerson( ){ // 父类的成员方法
System.out.println("老爸的约会史");
}
}
class Son extends Father{ //子类继承父类
public String business ;
public String getBusiness() {
return business;
}
public void setBusiness(String business) {
this.business = business;
}
@Override
public void datePerson(){ // 重写的实现
System.out.println("儿子开始约会");
}
}
`
【多态】
- 见词知义,即为“多种状态”。在面向对象语言中,接口的多种不同的实现方式即为多态(编译运行时,相同的方法具有不同的行为)。
- 实现多态的技术:动态绑定(dynamic binding),是指在执行期间判断所引用对象的实际类型,根据其实际的类型调用其相应的方法。
- 实现多态的思想:接口、方法的重载和方法的重写。
【接口】
定义:Java的接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。
通过具体例子来体会多态
`
public class Test_Polymorphism {
/**
*品酒看多态
*/
public static void main(String[] args) {
TureWords xifenwine = new Xifenwine(); // 实现多态
TureWords jiangxiaobai = new Jiangxiaobai(); // 西凤酒和江小白都是酒的一种
String s=xifenwine.say("喝醉了");
System.out.println(s);
jiangxiaobai.say("要倒了");
}
}
interface TureWords { // 定义接口:酒后吐真言
public String say (String words); //不需要方法体
}
class Xifenwine implements TureWords{ // 实现接口
public String say (String words){
System.out.println("西凤酒好喝呀!");
return "xfj";
}
}
class Jiangxiaobai implements TureWords{
public String say(String words) {
System.out.println("江小白喝着也不错");
return "jxb";
}
}
`