java三大特性之 继承
来源:互联网 发布:java selenim设置超时 编辑:程序博客网 时间:2024/05/25 23:28
1 继承:子类继承父类的特性,只支持单继承,只有一个父类。这样是避免多个父类时的冲突。子类继承了父类的特性,同时扩展功能。
继承的出现:提高了代码的复用性,让类与类之间产生了关系。
子类父类函数的特点:
子类出现和父类一样的函数时,覆盖父类的函数。重写。
父类独有的函数,子类没出现,子类同样保留了父类函数的功能
继承的弊端:打破了封装性
子类实例化过程:
因为子类每一个构造函数内的第一行都有一句隐式super();当父类中没有空参数的构造函数时,子类必须手动通过super语句形式来指定要访问父类中的构造函数。当然,子类的构造函数第一行也可以手动指定this语句来访问本类中的构造函数。子类中至少会有一个构造函数会访问父类中的构造函数。
2 抽象类
抽象方法必须定义在抽象类中,抽象类不可以被实例化,只有所有的抽象方法被实现后才可以实例化。
抽象类的问题:
1,抽象类中有构造函数吗?
有,用于给子类进行初始化。
2,abstract关键字不可以和那些关键字共存?
private不行,抽象方法需要实现,私有,没办法实现覆盖原有方法。
static不行,静态的不用对象,直接类名调用,抽象方法没内容,没意义。
final不行,水火不容,抽象要被覆盖,但是final不能覆盖。
3,抽象类和一般类的异同点。
相同点:抽象类和一般类都是用来描述事物的,都在内部定义了成员。
不同点:1,一般类有足够的信息描述事物。抽象类描述事物的信息有可能不足。
2,一般类中不能定义抽象方法,只能定义非抽象方法。抽象类中可定义抽象方法,同时也可以定义非抽象方法。
3,一般类可以被实例化,抽象类不可以被实例化。
abstract class Employee { private String name; private String id; private double pay; Employee(String name,String id,double pay){ this.name = name; this.id = id; this.pay = pay; } public abstract void work(); } //描述程序员。 class Programmer extends Employee { Programmer(String name,String id,double pay) { super(name,id,pay); } public void work() { System.out.println("code..."); } } //描述经理。 class Manager extends Employee { private int bonus; Manager(String name,String id,double pay,int bonus) { super(name,id,pay); this.bonus = bonus; } public void work() { System.out.println("manage"); } } class Employee { public static void main(String[] args){ Programmer programmer = new Programmer("黑马程序员——新长城","007",8000);programmer.work();Employee employee = new Employee("黑马程序员总经理","001",13000,2000);employee.work();} }
0 0
- java的三大特性之继承
- JAVA三大特性之二---继承
- java三大特性之 继承
- Java三大特性之继承
- Java三大特性之继承
- Java三大特性之---继承
- java 三大特性之继承
- Java三大特性之继承+多态
- Java 的三大特性之继承
- java的三大特性之继承
- Java三大特性之继承
- java的三大特性之继承
- java的三大特性之继承
- JAVA三大特性--继承
- java三大特性--继承
- Java三大特性--继承
- java三大特性:继承
- Java进阶---理解Java的三大特性之继承
- SPOJ GSS系列
- 【Linux运维-集群技术进阶】Nginx+Tomcat实现Web服务器的负载均衡
- C++中explicit关键字的作用
- 【php】exit()与die()函数详解
- 欢迎来到我的CSDN
- java三大特性之 继承
- IOS开发UI篇--使用CAShapeLayer实现复杂的View的遮罩效果
- Java中的SSH框架之hibernate
- MAC键盘快捷键
- 【RedHat】FTP服务
- Spring4.2.0 集成 Spring-scurity4.0.3框架
- 多台电脑间共享鼠标键盘synergy
- cmake笔记
- NYOJ 32 组合数