Java Head First 第七章 继承与多态
2017-12-04 13:53
197 查看
1.继承
(1)找出具有共同属性和行为的对象
(2)设计出代表共同状态与行为的类
(3)决定子类是否需要让某项行为(也就是方法的实现)有特定不同的运作方式
(4)通过寻找使用共同行为的子类来找出更多抽象化的机会
2.继承“是一个”的意思
A B继承A,可以说B就是A,B拥有A所有的方法
↓
B
3.在子类中打算沿用父类的方法,然后再加上额外的行为,可用super关键字来取用父类的方法
例:public void roam ( ){
Super.roam( );
//my own roam stuff
}
先执行super版的roam,然后再回来执行sub版的自定义的行为或功能
4.public的成员会被继承
5.private的成员不会被继承
6.对象的声明、创建与赋值
Dog myDog=new Dog( );
Dog:引用类型
Dog ( ):对象类型
引用类型与对象类型必须相符。
但是,在多态下,引用与对象可以是不同的类型,因为在运用多态时,引用类型可以是实际对象类型的父类。
例:Animal myDog=new Dog( );
参数和返回类型可以多态。
7.final的用法
(1)修饰类
Final修饰一个类,表这个类不能被继承
例:final class people{
......
}
class a extends people{ } //将报错
(2)修饰方法
Public final void play( ){ }
目的:把方法锁定,以防任何继承类修改它的含义
(3)修饰变量
(1)对于基本数据类型的变量,其数值一旦在初始化后便不可修改,对于引用类型的变量也同理。
Class a {
Private final int i =0; //final修饰i
Public Man ( ){
i=1; //将报错
Final Object obj =new Object ( ); //final修饰obj
Obj=new Object ( ); //将报错
}
}
8.方法的重载
重载版的方法只是刚好有相同的名字的不同方法,它与继承或多态无关,与覆盖不一样。
(1)返回类型可不同
(2)不能只改变返回类型(参数也得改)
(3)可更改存取权限
方法重载与重写的区别:
方法重载:(1)方法名必须相同
(2)参数必须不同
(3)返回类型可相同也可不相同
方法重写:(1)相同名称(方法名)
(2)相同参数 (不能存在于同一个类中)
方法重写也称为覆盖。
若子类中的方法与父类中的某一方法具有相同的方法名,返回类型和参数也一样,则新方法覆盖原有的方法。
(1)找出具有共同属性和行为的对象
(2)设计出代表共同状态与行为的类
(3)决定子类是否需要让某项行为(也就是方法的实现)有特定不同的运作方式
(4)通过寻找使用共同行为的子类来找出更多抽象化的机会
2.继承“是一个”的意思
A B继承A,可以说B就是A,B拥有A所有的方法
↓
B
3.在子类中打算沿用父类的方法,然后再加上额外的行为,可用super关键字来取用父类的方法
例:public void roam ( ){
Super.roam( );
//my own roam stuff
}
先执行super版的roam,然后再回来执行sub版的自定义的行为或功能
4.public的成员会被继承
5.private的成员不会被继承
6.对象的声明、创建与赋值
Dog myDog=new Dog( );
Dog:引用类型
Dog ( ):对象类型
引用类型与对象类型必须相符。
但是,在多态下,引用与对象可以是不同的类型,因为在运用多态时,引用类型可以是实际对象类型的父类。
例:Animal myDog=new Dog( );
参数和返回类型可以多态。
7.final的用法
(1)修饰类
Final修饰一个类,表这个类不能被继承
例:final class people{
......
}
class a extends people{ } //将报错
(2)修饰方法
Public final void play( ){ }
目的:把方法锁定,以防任何继承类修改它的含义
(3)修饰变量
(1)对于基本数据类型的变量,其数值一旦在初始化后便不可修改,对于引用类型的变量也同理。
Class a {
Private final int i =0; //final修饰i
Public Man ( ){
i=1; //将报错
Final Object obj =new Object ( ); //final修饰obj
Obj=new Object ( ); //将报错
}
}
8.方法的重载
重载版的方法只是刚好有相同的名字的不同方法,它与继承或多态无关,与覆盖不一样。
(1)返回类型可不同
(2)不能只改变返回类型(参数也得改)
(3)可更改存取权限
方法重载与重写的区别:
方法重载:(1)方法名必须相同
(2)参数必须不同
(3)返回类型可相同也可不相同
方法重写:(1)相同名称(方法名)
(2)相同参数 (不能存在于同一个类中)
方法重写也称为覆盖。
若子类中的方法与父类中的某一方法具有相同的方法名,返回类型和参数也一样,则新方法覆盖原有的方法。
相关文章推荐
- Core Java第七章知识点总结——封装、继承、多态
- Java程序员从笨鸟到菜鸟之(二)面向对象之封装,继承,多态(上)
- Java入门第10章接口继承与多态
- java的重写、重载以及继承、多态和封装
- Java继承和多态===Java instanceof 运算符
- java三大特性之继承和多态
- 关于ActionScript 3.0 中方法重写和继承的发现(运行时多态,原理同Java)
- 九、Java基础---------面向对象封装、继承、多态
- Java基础之封装、继承、多态、接口详解
- Java学习--封装、继承、多态
- Java的继承与多态
- Java 课堂记录 03 (继承与多态)
- 简述Java面向对象三大特征:封装、继承、多态
- 2018/01/07JAVA 基础 / 接口与继承:多态的概念、接口的意义是什么呢?
- java的继承 多态 类和接口
- Java,C#,C++在继承,覆盖和多态,抽象类等几个方面的比较归纳
- java继承与多态
- JAVA面试题解惑系列(九)——继承、多态、重载和重写
- java 面向对象(类,属性 ,方法,包,封装、继承、多态)
- Java程序员从笨鸟到菜鸟之(二)面向对象之封装,继承,多态(上)