java中的继承

java中采用关键字extends继承一个类。

为什么要有继承:

多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类无需再定义这些属性和行为,只要继承那个类即可。

继承的作用:

  • 继承的出现提高了代码的复用性。
  • 继承的出现让类与类之间产生了关系,提供了多态的前提。
  • 不要仅为了获取其他类中某个功能而去继承

子类继承父类以后,父类中声明的属性和方法子类就可以获取到(私有的属性和方法也获取到了,只是由于封装的设计使得子类对象不能直接使用,可以通过set方法设置和get方法得到)。在子类中,可以使用父类中定义的方法和属性,也可以创建新的数据和方法。

子类除了通过继承获取父类的结构之外,还可以定义自己特有的成分,子类是对父类功能的扩展,子类不是父类的子集。

方法的重写(对父类同名方法的重写)。方法的形式(1、修饰符     2、返回值类型      3、方法名(4、参数列表){   }):

前提:子类继承父类,父类的方法对子类不适用,子类可以对父类方法重写(覆盖)。

重写的规则:

  1. 要求子类方法形式中2、3、4部分与父类一样。
  2. 子类的方法修饰符不能小于父类方法的修饰符。
  3. 若父类方法抛异常,则子类抛的异常类型不能大于父类。
  4. 子类和父类方法必须同为static或同为非static。

子类可以覆盖(override)父类中的方法(private因为invisible不能覆盖,final也不能覆盖)。假如父类中有方法private void eat(){},子类中方法public void eat(){},子类中的这个方法并不是对父类方法的重写。

java中四种访问权限修饰符:


不要为了继承而去继承,要有一些天然的关系(比如person类中有个eat方法,animal中也需要eat方法,但是不要去让animal类去继承person类)。

java中类的继承只支持单继承,一个类只能继承一个父类,但是一个父类可以有多个子类。


可以将子类对象赋值给自身或者直系长辈(即父类,父类的父类。。),而不能反过来将父类对象赋值给子类。当将子类对象赋值给父类变量的时候,不可以使用子类专有的方法。

public class Person {
            public String name;
            public int age;
            public String getInfo() {
	      return "Name: "+ name + "\n" +"age: "+ age;
            }
}
public class Student extends Person {
            public String school;
            public String getInfo() {       //重写方法
  	      return  "Name: "+ name + "\nage: "+ age 
	          + "\nschool: "+ school;
             }
public static void main(String args[]){
	     Student s1=new Student();
	     s1.name="Bob";
	     s1.age=20;
	     s1.school="school2";
	     System.out.println(s1.getInfo());   //Name:Bob  age:20  school:school

	     Person p1=new Person();
	     p1.getInfo(); //调用Person类的getInfo()方法
	     Student s1=new Student();
	     s1.getInfo(); //调用Student类的getInfo()方法

}



参考资料:

http://blog.csdn.net/meiyijian/article/details/51973327
java继承覆盖总结:http://blog.csdn.net/stonecao/article/details/6317353?locationNum=7





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值