Java继承
来源:互联网 发布:如何求矩阵的秩 编辑:程序博客网 时间:2024/05/09 14:50
public class Employee {public static String superStr = "SUPERSTR";public String test() {return "SUPERTEST";}public String test2() {return "SUPERTEST2";}}
public class Manager extends Employee {public static void main(String[] args) {System.out.println(superStr);// 直接访问父类域Manager mgr = new Manager();String t1 = mgr.test();// 直接访问父类方法String t2 = mgr.test2();// 覆盖父类方法System.out.println(t1 + "\n" + t2);}@Overridepublic String test2() {return super.test2() + "#test2";}}父类Employee有public的域和方法,子类Manager覆盖了父类的一个方法。从代码中的注释可清楚地知道:子类可直接访问父类的公有域或方法,但若子类覆盖了父类的域或方法,就按覆盖的本意来。
输出结果:
SUPERSTR
SUPERTEST
SUPERTEST2#test2
简单来说,上面的Manager继承Employee后,它的代码实质上等同于:
public class Manager extends Employee {//***********父类域**************************public static String superStr = "SUPERSTR";public String test() {return "SUPERTEST";}/*public String test2() {return "SUPERTEST2";}*///***********父类域**************************public static void main(String[] args) {System.out.println(superStr);// 直接访问父类域Manager mgr = new Manager();String t1 = mgr.test();// 直接访问父类方法String t2 = mgr.test2();// 覆盖父类方法System.out.println(t1 + "\n" + t2);}@Overridepublic String test2() {return super.test2() + "#test2";}}
继承设计技巧:
1)将公共操作和域放置在超类
2)不要使用受保护的域(protected)
3)使用继承实现"is-a"关系
4)除非所有继承的方法都有意义,否则不要使用继承
5)在覆盖方法的时候,不要改变预期的行为
6)使用多态,而非类型信息
7)不要过多地使用反射
3 0
- Java继承
- JAVA-继承
- java 继承
- Java继承
- Java 继承
- JAVA继承
- java继承
- java/继承
- java 继承
- java继承
- java继承
- JAVA-继承
- Java继承
- java 继承
- JAVA 继承
- 【继承】 JAVA
- Java继承
- Java继承
- Ubuntu下thrift的安装与测试
- Gitlab搭建
- php生成随机验证码
- 批处理bat脚本编写(附详细例子)
- 父类引用指向子类对象
- Java继承
- linux02 目录结构和常用命令
- print将它的参数显示在命令窗口
- 离散化
- php Laravel 框架之建立后台文件夹 二
- public interface Queue
- $transaction = $db
- 一个简单的问题:在Django中如何将views.py中的变量传递到HTML/JavaScript中?
- Windows Phone 8.1也将迎来自己的Salesforce 1应用软件