黑马程序员技术交流社区
标题: 第九天 总结 (上) [打印本页]
作者: 陈郊 时间: 2012-10-4 09:59
标题: 第九天 总结 (上)
第九天 总结
1. Final关键字 通过继承,让类与类之间存在了关系,但是继承也破坏了封装性。如果在操作过程,进行恶意的重写,那么会给我们的程序带来问题。java中怎样可以去避免继承,可以通过final关键字。
1.在java中声明类、属性和方法时,可以使用关键字final来修饰。
2.final标记的类不能被继承。
3.final标记的方法不能被子类重写。
4.final标记的变量(成员变量和局部变量)即成为常量,只能赋值一次。但是这个常量只能在这个类的内部使用,不能在内的外部直接使用。
什么时候使用final修饰变量
我们在程序开发中,如果发现某个成员变量,其值不可以进行改变操作,那么为了程序的安全,就应该将这个成员变量定义为fianl,例如,double PI=3.14。它的值就不应该被改变,应该声明成 final double PI=3.14
Static final String[] cs={"黑桃","红桃","方块","梅花"};
如果一个变量是由final修饰的那么它的命名规范: 所有字母都大写,如果由多个单词组成,用_分隔
private 只是进行权限控制,如果使用了,那么在子类不可以使用
final 是不可以被重写,但是在子类可以使用.
2. 抽象类和抽象方法Java中可以定义一些不含方法体的方法,它的方法体的实现交给该类的子类根据自己的情况实现,这样的方法就是抽象方法,包含的类就是抽象类。一个抽象类可以包含多个抽象方法。
注意:抽象方法必须是abstract修饰符来定义的,任何带有抽象方法的类都必须声明成抽象类。如果一个类继承了抽象类,那么子类必须将父类中的所有抽象方法进行重写.
抽象类:用abstract来修饰的类
抽象方法:用abstract来修饰的方法
抽象方法作用:它只是定义具有的行为,而没有具体的方法体。简单说,抽象方法中有方法声明,而没有执行内容。
抽象特点:
1.抽象类用abstract修饰 抽象方法也是用abstract来修饰
2. 如果一个类中有abstract方法,那么这个类也必须是abstract类
3.子类如果继承抽象类,那么必须将父类中的所有抽象方法重写.
4.抽象类不可以实例化,不可以去new.抽象类的作用就是让子类继承进行重写.(因为抽象类中的抽象方法没有方法体,得到这个类的对象调用这个上方法没意义,所有不允许实例化抽象类)
示例
宝马车
奔驰车
行驶行为
对于宝马与奔驰都有行驶的方法,我们可以将其进行抽取,形成一个Car类,这个类中
有一个行驶的方法,这个方法可以让宝马,奔驰进行重写。
但是在Car类中,这个行驶的方法需要具体的方法体吗?
抽象类的好处:
1.将子类对象共性的行为进行抽取,让子类在继承时,必须进行重写。父类中只有行为的声明,而没有具体的实现。
2.抽象类进行了规则的制定,有强制作用。
什么时候使用抽象
多个对象具有共同的行为,但是行为的实现不同,我们可以将这些行为进行抽取,但不抽取具体的实现,这时就可以使用抽象方法。如果一个方法是抽象的,它所在的类必须是抽象类。
抽象的细节
1.抽象类中是否可以没抽象方法 java.awt.* 包下的类有这样的操作.
2.抽象类是否可以继承
可以继承普通类
可以继承抽象类,如果子类继承了抽象类,并且没有对抽象方法进行重写,那么这个子类也是一个抽象类
3.抽象类有没有构造方法
可以有构造。抽象类的作用是让子类继承,构造方法是让子类进行初始化.抽象类也是一个类,具有类的特征,所有也要有构造方法,但是它的作用不是为了进行自己的初始化,是为子类给提供初始化。
4.abstract与其它修饰符关系
final:它的作用 修饰类代表不可以继承 修饰方法不可重写
abstract修饰类就是用来被继承的,修饰方法就是用来被重写的。
final与abstract不能共存. static修饰的方法可以用类名调用,对于abstract修饰的方法没有具体的方法实现,所有不能直接调用,也就是说不可以与static共存.
Private:private修饰的只能在本类中使用,abstract方法是用来被子类进行重写的,有矛盾所以不能共存.
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |