java的继承extends_JAVA_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > JAVA > java的继承extends

java的继承extends

 2015/4/7 6:48:05  hm4123660  程序员俱乐部  我要评论(0)
  • 摘要:“继承”是面向对象软件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为"B的子类",而把B称为"A的父类"。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。继承的基本概念1.继承是面向对象的三大特性之一。(封装,继承,多态)2.被继承的类是父类,继承父类的类是子类3.继承可以使一个对象直接使用另以对象的属性和方法4
  • 标签:Extend Java 继承 Ten

????????? “继承”是面向对象软 件技术当中的一个概念。如果一个类A继承自另一个类B,就把这个A称为"B的子类",而把B称为"A的父类"。继承可以使得子类具有父类的各种属性和方 法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。

?

继承的基本概念

1.继承是面向对象的三大特性之一。(封装,继承,多态)

2.被继承的类是父类,继承父类的类是子类

3.继承可以使一个对象直接使用另以对象的属性和方法

4.继承可实现代码重用

?


继承的限制

1.java只能显示单继承,即一个类只能有一个父类

2.允许多重继承

3.继承只能继承非私有的属性和方法

4.构造方法不能被继承

?

来看例子

?

情况一:

?

class="java">public class Mystring {
	
	public static void main(String[] args) {
		
		  student ok=new student("xiaoming");
	          ok.say();//say方法也被继承过来
	}

}
class person
{
    public String name; 
    //构造方法
    public person()
    {
       System.out.println("我是person构造方法");
    }
    public void say()
    {
        System.out.println("名字是 :"+name);
    }
}
class student extends person//继承person类
{
	public student(String name)
	{
		  this.name=name;//person的name属性被继承过来
	}	
}

?输出结果为:

?



?得出结论1:子类实例化时,首先会调用父类的构造方法,之后自己在进行实例化操作

?

情况二:



?

??? 此时引入关键字super。super表示父类的引用,可以调用父类的方法和属性。如调用父类的say方法,可以用。super.say()调用。

?

得出结论二:父类无默认构造函数时,子类必须显示的调用父类的构造方法

?

?

继承方法的重写

?

?? 概念:在java中,子类能继承父类中的方法,但有时子类并不想原封不动的使用父类的方法,而想做一些修改,这就需要采用方法的重写,又称方法覆盖。

?

方法重写需要注意的特性

1.发生重写的父类和子类的两个方法的返回值,函数名,参数列表必须完全一致

2.子类抛出的异常不能超过父类相应方法抛出的异常

3.子类方法的访问级别不能低于父类相应方法的访问级别(如父类方法时protected,子类重写就要用protected或public)

?

如:

public class Mystring {
	
	public static void main(String[] args) {
		
		  student ok=new student("xiaoming");
	      ok.say();//say方法也被继承过来
	}

}
class person
{
    public String name; 
   
    public void say()
    {
        System.out.println("名字是 :"+name);
    }
}
class student extends person//继承person类
{
	public student(String name)
	{
		this.name=name;//person的name属性被继承过来
	}	
	
	//say方法重写
	public void say()
	{
		System.out.println("重写过得方法       名字是 :"+name);
	
	}
}

?

输出结果:



?

  • 大小: 6.3 KB
  • 大小: 34.5 KB
  • 大小: 5.5 KB
  • 查看图片附件
上一篇: 设计模式总结 下一篇: 没有下一篇了!
发表评论
用户名: 匿名