黑马程序员——面向对象继承(上)

-----------android 培训 java培训 、java学习型技术博客、期待与您交流!------------
     不知不觉都已经学到继承了,感觉前几天的课幸亏先前预习了不然压力山大啊!
一、继承的特点
    Java中,不支持多级继承,但可以多层继承,继承的出现提高了代码的复用性。
    继承的出现让类与类之间产生了关系,提供了多态的前提。
     /*
子类的实例化过程:
1.构造一个子类对象时,会同时构造一个父类对象;注意类可以继承接口,接口不能被实例化。
2.在子类的构造器的第一行,隐式的添加一条语句:super();调用父类无参的构造器;
3.当继承时,一定仔细观察父类的构造函数,如果父类提供了无参构造函数,那么子类可以不显示调用;
 当父类没有无参构造函数时,那么子类必须显示使用super(参数),指定调用的父类的构造函数;
4.super()调用父类构造器,这个语句必须放在第一句话;
     */
     class Student 
     {
String stuNo;
Student(String name){

//this();//在一个构造器中,不能同时使用this()及super(),因为两个语句都需要放在第一句话;
System.out.println("构造一个Student");
}
Student(){
int num=1;
this.show();
}
void show(){
System.out.println("zhu");
}
     }
     class Demo 
    { 
public static void main(String[] args) 
{
Student stu = new Student("章子怡");
System.out.println("------------------------");
Student stu2 = new Student();
}
    }
    super关键字和this关键字:
this:
1.存储是当前对象的引用;
2.它始终指向的是本对象内部的成员(成员属性、成员方法、构造函数)
super:
1.存储的父类对象的引用;
2.它指向父类对象中的成员(成员属性、成员方法、构造函数)
在子类中可以定义跟父类相同的成员属性,此时,在子类中,这个变量将覆盖
父类的同名变量。可以使用关键字super.变量名显示的去获取父类的被覆盖的同名
变量。
    方法的重写(Override)
1.子类中出现与父类一模一样的方法时,会出现覆盖操作,也称为重写或者复写。
 一模一样的方法?
 1.要求:
1).返回值类型、方法名、参数列表三者必须完全相同;才是重写(Override)
   如果:
 方法名和参数列表相同,返回值类型不同:编译错误
 返回值类型和方法名相同,参数列表不同:编译通过,正常运行。属于子类自有的函数
   2).关于访问修饰符:
  子类重写父类方法时,必须拥有跟父类访问修饰符相同,或更宽的访问修饰符;
      访问修饰符:从宽到窄:public 、 protected、(默认)、private
  如果父类的方法的访问修饰符是(默认)的,那么子类中重写的方法必须是:(默认)或protected或public
  如果父类的方法的访问修饰符是public的,那么子类中重写的方法必须是:public
        final关键字:
1.final可以修饰类,方法,变量。
1).被final修饰的类,表示:最终类,不能被继承;
2).被final修饰的方法,表示:最终方法,不能被"重写";
3).被final修饰的变量,表示:拥有最终的值;
  A.被final修饰的“普通变量”:允许先声明,后赋值,但只能在构造方法(初始化代码块)中赋值,而且只能被赋值一次;
  B.被final修饰的"静态变量",可以通过静态代码块赋值;或者必须在声明时赋值;否则不能通过编译;
    总结了这么多,感觉听的时候还行,不过过后就忘,需要理解加记忆的东西很多。。加油吧
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值