Java_log2000_类与对象4
来源:互联网 发布:剪切歌曲合成软件 编辑:程序博客网 时间:2024/06/03 22:11
类篇entry2
关键词: 继承; Object类; 多态;
继承
- 通过extends关键字实现;
- 子类可以从父类继承所有非private的属性和方法作为自己的成员;
子类在继承父类的时候,首先应该满足父类可被访问,例如当子类和父类不
在同一个包当中时,父类修饰符必为public;在父类能被访问的前提下,凡
是修饰符为public或是protected的父类属性成员或是方法能被子类所访问;
private的属性成员或是方法则不能被访问。
Object类
- Object类是所有类的共同祖先,即使定义类时没有写extents Object。
- 在Object当中定义了许多方法,这些方法都可以被所有子类所继承。
最终类
被final修饰的类为最终类,不能有子类。
多态
多态的定义
- 多态的概念:多态是指一个程序中同名的不同方法共存的情况
- Java中提供两种多态的机制:重载(overloading)与覆盖(overriding)
重载例1
class Parent{ public int getScore(){ return 3; } public int getScore(int i){ return i; } }
类Parent中有两个getScore方法,它们的参数有所不同
重载例2
如:class Applet
public AudioClip getAudioClip(URL url) { 。。。。。。。; } public AudioClip getAudioClip(URL url, String name) { try { //通过重新构造一个新的URL对象,之后调用上面的同名方法来实现功能。 return getAudioClip(new URL(url, name)); } catch (MalformedURLException e) { return null; } }
重载例3
如:java.util.Class LinkedList
public boolean addAll(Collection c) { return addAll(size, c); //size是链表长度,此方法调用下面的方法,将传入对象插入到指定链表尾部}//index是链表的当前索引号public boolean addAll(int index, Collection c) { ……}
覆盖
子类对父类的同名方法(方法名称相同,参数相同,返回
类型相同)重新进行定义,即在子类中定义与父类中已定
义的相同名而内容不同的方法。
- 方法名称相同,参数名称相同,返回类型相同:覆盖
- 方法名称相同,参数名称不同:重载
- 方法名称相同,参数名称相同,返回类型不同:编译不能通过
覆盖例1
class Parent { public int getScore() { return 3; } public String getCountryName() { return “China”; }}class Son extends Parent { public int getScore(){ return 4; } } public class RunSon{ public static void main(String args[]){ Son s = new Son(); System.out.println(s.getScore()); System.out.println(s.getCountryName()); }}//----------------------输出结果:4China
覆盖——注意
- 子类的访问修饰符权限应等于或大于父类
- static方法不能覆盖非静态方法,也不能被非static方法覆盖,但是static方法可以覆盖static方法
- 方法前有final修饰符,此方法不能在子类方法中进行覆盖
- 在JDK中,很多父类的方法被子类重新覆盖,赋予了不同的含义,如Object类中的boolean equals(Object obj)方法
- 抽象类中如果存在抽象方法,则具体子类必须对抽象方法进行覆盖
覆盖例2
class Super { public Integer getLenght() { return new Integer(4); }}public class Sub extends Super { public Long GetLenght() { return new Long(5); } public static void main(String[] args) { Super sooper = new Super(); Sub sub = new Sub(); System.out.println( sooper.getLenght().toString() + "," + sub.getLenght().toString() ); } }//-------------输出结果:4,4
visitor tracker
阅读全文
0 0
- Java_log2000_类与对象4
- Java_log2000_类与对象1
- Java_log2000_类与对象2
- Java_log2000_类与对象3
- Java_log2000_类与对象5
- Java_log2000_类与对象6
- Java_log2000_类与对象7
- Java_log2000_关键字break与switch运用辨析
- Java_log2000_线程1
- Java_log2000_线程2
- Java_log2000_网络通信
- Java_log2000_框架概念介绍
- Java_log2000_重载的定义
- C++:类与对象4(对象成员:点与矩形)
- Chapter 4 类与对象
- OOP-----类与对象对象
- OOP-----类与对象对象
- 对象与元类对象
- Linux 学习笔记
- 【C++】浅析C++中的对象模型
- Matlab命令积累
- GlusterFS的安装及使用
- 在jsp页面的url链接传递中文参数的乱码问题
- Java_log2000_类与对象4
- 属性操作例子-页面文字放大缩小
- Android 中 Checkbox和view的监听冲突问题
- struts2传中文参数到action乱码解决方法
- 给python脚本做个语法检查
- 用两百行_JavaScript_创造你自己的编程语言
- 如何用repo强制和远程代码同步
- struts2验证码及错误解决
- Java 对文件夹的常用操作