黑马程序员技术交流社区

标题: 继承 [打印本页]

作者: dajiaoya    时间: 2015-7-3 14:16
标题: 继承
继承
2.1 关键字 extends  一个类继承一个类
2.2 继承特点,单继承,支持多层继承
2.3 好处,代码少,提高复用性,可维护性,导致多态

3. 成员变量
3.1 如果子类中有,用子类,子类没有用父类
3. 2子类中,super.调用父类成员变量

子类父类成员变量的内存图

4. 构造方法
4.1 子类所有构造方法,必须访问过父类构造方法
4.2 子类中所有构造方法的第一行 默认语句 super() 访问父类空参数构造方法
4.3 父类中如果没有空参数构造方法,子类构造方法手写super语句,否则编译失败
4.4 构造方法第一行,this super 选择一个,保证构造方法直接或者间接访问过父类构造方法

5. 成员方法
5.1 子类重写父类方法
   子类的方法权限大于或者等于父类方法权限,其他部分一模一样


作者: fantianfei    时间: 2015-7-3 14:31
复习了。。
作者: xujixing    时间: 2015-7-3 15:20
  1. public class Test {   
  2.     public static void main(String[] args){   
  3.         B b=new B(0);         
  4.         int y=b.getY();   
  5.     }   
  6.    
  7. }   
  8.    
  9. class A {   
  10.     public static int x=2; //1.        
  11.     private int y=2;      //2.   
  12.     protected int z;      //5.   
  13.     A(){                      //3.   
  14.         x=x+1;   
  15.         showX();        //4.   
  16.     }   
  17.     public void showX(){   
  18.         System.out.println("A.x="+x);   
  19.     }   
  20.     public int getY(){   
  21.      return y;   
  22.     }   
  23.    
  24. }   
  25.    
  26. class B extends A {   
  27.         
  28.     B(int x){   
  29.         x=x+2;                 //只对局部x操作   
  30.         showX();   
  31.     }   
  32.     public void showX(){   
  33.         System.out.println("B.x="+x);   
  34.     }   
  35.     public int getY(){ //6.   
  36.    
  37.      System.out.println("B.y="+(super.getY()+x));   
  38.      return super.getY()+x;   
  39.     }   
  40.    
  41. }   
  42.    
  43. //输出   
  44. //B.x=3 //动态绑定   
  45. //B.x=3   
  46. //B.y=5   
复制代码


1. public static int x被继承到B,成为B的私有域。

2. B中仍然有一个名为y的域,但是无法直接访问,需要通过super.getY()

3. 如果子类构造函数没有显式调用超类构造函数,将会自动调用超类的无参构造函 数,若超类没有无参构造函数,子类中又没有显式调用,则编译器报错

4. java默认动态绑定机制,若不需要动态绑定则将方法定义为final阻止继承

5. 类A的protected修饰符的数据或方法,可以被同个包中的任何一个类访问(包括子类),也可以被不同包中的A的子类访问。

6. 覆盖一个方法时,子类的方法可见性不能低于父类方法的可见性。

类的继承知识点
(1)java不支持多重继承,也就是说子类至多只能有一个父类
(2)子类继承了其父类中不是私有的成员变量和成员方法,作为自己的成员变量和方法
(3)子类中定义的成员变量和父类中定义的成员变量相同时,则父类中的成员变量不能被继承
(4)子类中定义的成员方法,并且这个成员方法的名字,返回类型,及参数个数和类型与父类的某个成员方法完全相同,则父类的成员方法不能被继承。
作者: 终极黑马    时间: 2015-7-3 18:05
2.3 好处,代码少,提高复用性,可维护性,多态前提        谢谢分享
作者: 张恩祺    时间: 2015-7-3 21:30
这是面试的一些问题么 ?
作者: hoop.zeng    时间: 2015-7-3 21:34
学习一下
作者: keto    时间: 2015-7-3 21:37
学习了。。。
作者: 走在这里    时间: 2015-7-3 21:47
给楼主赞一个  




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2