java基础之继承



package day11;
/**
 * java 基础 面向对象之继承、抽象类和借口
 *
 * 1、继承
 * 面向对象的三大特征:封装、继承、多态
 * 主要用在  游戏开发:
 * 所有的人物角色都属于一个类,这个类当中包含了所有的共同的属性,
 * 但每一个门派之间,技能不同,也就是在人物的基础上加上了技能的特性
 * 要求门派离得人物必须有角色这个类里面的所有属性
 *
 * 继承;
 * 就是在代码中一个类继承了另一个类的所有的可以被继承的属性
 *
 *【发现】
 *1、再调用子类的构造函数的时候,也会来调用父类的构造函数,一个子类的创建必须现有
 *父类的对象空间,才可以
 *2、如果父类的中的成员变量用private修饰,这个成员变量子类无法使用,也可以说子类不能
 *继承父类的私有化属性
 *3、如果父类中成员方法用private修饰,这个成员方法子类也无法使用,子类不能
 *继承父类的成员方法。
 *【注意事项】
 *继承的确能帮我们节省代码空间,但是不能是为了代码而去继承,一定是存在了
 *继承关系类才能用继承来完成。
 * @author Administrator
 *
 */

class Person {
 int age;
 String name;

 public Person() {
  System.out.println("Person类的无参构造函数");
 }
 
 public Person(int age, String name) {
  this.age = age;
  this.name = name;
  System.out.println("Person类的有参构造函数");
 }
 
 public void coding() {
  System.out.println("愉快的写代码~~~");
 }
}

class Worker extends Person{ 
 
 int id;
 public Worker() {
  System.out.println("worker的无参构造函数");
 }
 
 public Worker(int id, int age , String name) {
  super(age,name);
  this.id = id;
  System.out.println("有参的构造函数");
 }
 public void workering() {
  System.out.println("一群码字猴在努力的码代码");
 }
}
public class Test01 {

 public static void main(String[] args) {
  //这下面两行注释掉之后,person的无参构造函数还是会被调用,为什么?
  /*
  Person p = new Person();
  p.coding();
  */
  Worker w = new Worker();
  //【在这里多了一个Person类的构造函数,哪里来的】
  /**
   * 上面的person无参构造方法被注释掉之后还是会被调用,就是
   * 子类调用构造方法默认的调用父类的同一类型构造函数
   */
  //以下是worker自己的成员变量及成员方法
  w.workering();
  w.id = 9527;
  //这里是继承了的成员变量与方法
  w.name = "连狼";
  w.age = 17;
  w.coding();

  System.out.println("");
 }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值