1.继承
概念:
继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。
特点:
在继承关系中,父类更通用、子类更具体。父类具有更一般的特征和行为,而子类除了具有父类的特征和行为,还具有一些自己特殊的特征和行为。
作用:
使用继承可以有效实现代码复用,避免重复代码的出现。当两个类具有相同的特征(属性)和行为(方法)时,可以将相同的部分抽取出来放到一个类中作为父类,其它两个类继承这个父类。
列如:
class A{
int num=0;
public A(int i){
System.out.println("a");
System.out.println("i= "+i);
num=i;
}
}
class B extends A{
int num=0;
public B(){
super(10);
System.out.println("b");
System.out.println("num= "+num);
System.out.println("super.num= "+super.num);
}
}
public class Text{
public static void main(String[] args){
new B();
}
}
2.多态
概念:
指同一个实体同时具有多种形式。它是面向对象程序设计的一个重要特征。
作用:
把不同的子类对象都当作父类来看,可以屏蔽不同子类对象之间的差异,写出通用的代码,做出通用的编程,以适应需求的不断变化。简单的说,建立一个父类对象的引用,它所指对象可以是这个父类的对象,也可以是它的子类的对象。java中当子类拥有和父类同样的函数,当通过这个父类对象的引用调用这个函数的时候,调用到的是子类中的函数。
列如:
class Animal
{
public void eat()
{
System.out.println("Animal eat food");
}
}
class Dog extends Animal
{
public void eat()
{
System.out.println("Dog eat food!");
}
}
class Cat extends Animal
{
public void eat()
{
System.out.println("Cat eat food");
}
public void move()
{
System.out.println("Cat move");
}
}