在JAVA中什么是对象,什么是类;什么是封装,什么是多态,什么是继承
简单来说,类就是对一个事物抽象出来的结果。比如人可以作为一个类。一般来说,一个类具有成员变量和成员方法。成员变量相当于属性,比如‘人’具有的变量有胳膊,手脚等。而成员方法是该类能完成的一些功能,比如‘人’可以说话(talk),行走(walk)等。
对象,如果说类是一个抽象概念,那么对象就是具体对象。比如我们说‘人’就是一个抽象概念,但是具体到某个人,比如你,我,他,就是一个‘人’对象。
封装,简单理解就是把一系列的数据放在一个类中,还用前面的例子,如果形容一个人,我们可以用身高(hight),体重(weight)等来描述,如果不封装,我们需要3个变量来形容它。在面向对象中,可以用一个Person类封装这些数据,Person具有3个成员变量,分别是height,weight。使用的时候,每当生成一个这样的类的对象,就具有这3个属性。
继承,如果B类继承A类。那么B类将具有A类的所有方法,同时还可以扩展自己独有的方法和属性。还用人做例子。‘人’是父类,那么‘男人’,‘女人’都是继承自‘人’。也就是说,不论‘男人’,‘女人’,都具有‘身高’,‘体重’这两个属性,同时,他们可以有自己独有的属性,比如‘女人’可以有一个‘三围’属性-_-!
多态,在java中,同一个方法可以有多种不同的表现形式,具体说来分为重载和重写。重载就是一个方法的方法名相同而所具有的参数列表不同。比如:
public String talk(String content); //参数是String,
public String talk(String content, int number) //参数是2个,String和int
重载则是子类在继承父类的同时,重新实现了父类的某个方法。重载的方法名和参数都必须完全相同。
比如父类
public String talk(String content) {
System.out.print(content);
}
子类继承该类,所以也具有talk这个方法,他重新定义了该方法的实现
public String talk(String content) {
System.out.println("Hi" + content);
}
抽象类和一般类的最大区别,就是不能实例化一个对象,但是它可以被继承。
接口则是指定义了方法的名字,而不定义他的实现。方法的具体实现由其实现类去完成。比如
public interface mp3{
public void play();
public void pause();
}
这就定义了一个mp3的接口,任何其他类都可以实现这个类,但是实现这个接口就必须实现这个接口所定义的方法。换句话说,任何实现mp3的类,都必须具有play()和pause()的方法,比如
public class IPod implements mp3{
public void play(){
//具体实现
}
public void pause(){
//具体实现
}
}