Java 学习 类的继承
来源:互联网 发布:淘宝缠论指标知道 编辑:程序博客网 时间:2024/05/18 00:25
Java学习 类的继承
设计类时, 通常使用特殊的方法在子类中
超类中方法在子类中不合适, 但是子类可以覆盖超类中的方法
类的继承
子类覆盖父类的方法时,子类中方法的权限不要低于父类方法使用权限。
类的继承:
子类调用父类方法时候使用 super 关键字
suoer 关键字中, 另外一个方法是子类构造器中可以调用父类构造器来初始化父类中的私有字段
如果没有在子类构造器中显示调用父类的某个构造器, 那么编译器会自动调用父类的无参数构造函数
继承层次
未必继承只有一层, 可以有很多侧层
一个祖类可以有对个子孙继承类
3. 多态和动态绑定
置换原则, 只要程序需要一个嗲用对象, 那么就可以用一个子类来替换他,
一个对象变量可以指向多种实际对象的现象
动态绑定
在运行时候, 自动选择正确的方法进行调用的现象被称为动态绑定
看代码:
package hello;import java.util.Date;import java.util.GregorianCalendar;import javax.swing.GrayFilter;public class ManagerTest {public static void main(String[] args) {// TODO Auto-generated method stub//设置老板的工资绩效 Manager boss = new Manager("Mark", 2334.45, 1994,10,23); boss.setBonus(500);//设置获得的奖金 //设置一个数组可以实现几个员工的 Employee[] staff = new Employee[3]; //下面就是为staff 赋值即可 staff[0] = boss; staff[1] = new Employee("Jack",1212.23, 1995,3,3); staff[2] = new Employee("XiaoMing", 4542.212, 2010, 6, 31); //上面就是继承的基本使用方法 for(Employee e : staff) { System.out.println("Name : " + e.getName() + "Salary : " + e.getSalary()); }}}class Employee{private double salary;private Date hireDay;private String name;public Employee(String n, double s , int year , int month , int day){name = n;salary = s;GregorianCalendar calendar = new GregorianCalendar(year, month -1, day);hireDay = calendar.getTime();}public String getName(){return name;}public double getSalary(){return salary;}public Date getHireDay(){return hireDay;}public void raiseSalary(double byPercent){double raise = salary*byPercent/100;salary += raise;}}class Manager extends Employee{ //类的继承可以为子类添加方法private double bonus;public Manager(String n, double s, int year ,int month, int day){super(n, s,year,month,day); //继承上面的方法bonus = 0;}public void setBonus(double b){bonus = b;}public double getSalary(){//获取工资方法进行重写double baseSalary = super.getSalary(); // 继承上面的方法加入工资即可return baseSalary +bonus;}}
0 0
- Java 学习 类的继承
- 【JAVA学习】类的继承
- java学习-- 类的继承
- JAVA类的继承学习笔记
- [Java]类的继承学习笔记
- JAVA学习笔记---类的继承
- java基础学习(四)java类的继承
- Java学习总结第十四天Java类的继承
- java 类的继承
- Java类的继承
- java 类的继承
- java类的继承
- java类的继承
- java 类的继承
- Java类的继承
- java类的继承
- Java类的继承
- Java类的继承
- Populating Next Right Pointers in Each Node II -- leetcode
- 修改默认jdk版本
- Xcode利用快照进行项目备份管理
- What I Learned From Reviewing 45+ Websites (Are You Making The Same Mistakes?)
- leetcode难度及面试频率
- Java 学习 类的继承
- linux spi framework
- 解决Cannot change version of project facet Dynamic web module to 2.5
- html5游戏开发设计技术解析Egret篇
- 【leetcode】【单链表】【19】Remove Nth Node From End of List
- java时间格式转换大全
- Aerospike C客户端手册———日志
- Java enum的用法详解
- Android: netd中DnsProxyListener的简单介绍