关于java继承的一些思考

关于java继承的一些思考:

作为一门面向对象的编程语言,java自然有着继承这个概念。
一个类可以通过关键字extends继承另一个类的属性和方法。而被继承的类被称为父类,继承的类被称为子类。
子类可以隐式地拥有父类的所有的public成员,只要是父类public的属性或是方法,子类都会拥有。
但是子类也可以继续拓展定义自己特有的属性和方法。

例如,
public class father{
 public int a=1;
 public int b=2;
 public void display(){
 system.out.println("a="+a+",b="+b);
}
}
public class son extends father{
 public int sum;
 public void prt(){
 sum=this.a+this.b;
 this.display();
 system.out.println("sum=a+b="+sum);
}
}

son类继承了father类,所以它可以使用父类中所含有的属性和方法。
其效果相当于在继承的过程中,java给son类添加了father类的属性和方法,只是这些代码是隐式的,我们看不见,但它们是真实存在的。

值得注意的是,java为了保证java程序的安全性,只支持类的单继承。
所以这样的代码是不合法的:
public class son extends JFrame,JPanel{

}
son类继承了JFrame和JPanel两个类,所以程序会报错。
由于java只支持单继承,所子类与父类直接的继承关系显得十分清晰,这使得一代代的继承关系更容易被理清楚,减少程序的隐患。

虽然java仅仅只支持单继承,但它也支持多个接口的实现,相当于变相地支持多重继承。
例如,
public class listener implements ActionListener,MouseListener,MouseMotionListener{

}
这样就同时实现了ActionListener,MouseListener,MouseMotionListener三个接口。
但是实现接口可不是像继承那样用关键字写一下名称就行了。
要实现接口,就必须重写接口的所有方法。
例如,
public class listener implements ActionListener{
public void actionPerformed(ActionEvent e) {
 
}
如果你使用关键字实现接口,但是没有将该接口的方法都重写的话,程序将会报错。

猜你喜欢

转载自dukeseraph.iteye.com/blog/2217563