day 7 面向对象 继承

package xue;
//继承:从已有的类中派生出一个新的类,新的类能够吸收已有类的数据属性和行为,并能拓展出新的能力
//只能继承一个父类/基类/超类,新类的定义可以增加新的数据或者是新的功能,也可以使用父类的功能 、
//父类的构造方法不能被继承
//继承能够复用以前的代码,能够大大缩短开发周期,降低开发费用
//继承是一种强耦合性,即相关度很高。程序中的耦合性越低越好
public class jicheng {

public static void main(String[] args) {
	// TODO Auto-generated method stub

// son s =new son();
// System.out.println(s.sum); //祖孙三代继承 继承具有传递性
System.out.println(s.name); //报错,因为father的name设为私有,不可继承
// s.eat(); //可继承父类的方法
// s.game(); //继承yeye的方法
// sunzi sun =new sunzi();
//输出 因为创建对象时,会默认访问父类的无参构造方法,而无参构造方法中默认含有super(),如果只有含参构造方法,则会有super(参数),这将
// 含参构造方法必须要super 带领程序不断的往上访问爷爷辈甚至更往上的构造方法
// 爸爸的无参构造
// 儿子的无参构造
// 89
// 34 子类也可以用自己的变量或方法

}

}

//class yeye{
// int sum=10;
// public void game() {
// System.out.println(“下象棋”);
// }
// public yeye(String a ) {
// System.out.println(“含参构造方法”+a);
// }
//
//}
//class father extends yeye{ //父类(yeye)只有含参构造方法,没有无参构造,所以必须要用super调用父类的含参构造方法,否则father无法创建对象,后面的子类都无法传承
// private String name =“爸爸”; //设为私有,则不可继承
// public father() {
// super(“必须要super”);
// System.out.println(“爸爸的无参构造”);
// }
// public void eat() {
// super.game(); //调用父类方法
// System.out.println(“吃肉”);
// }
//}
//class son extends father{
// int num =89;
// public son() {
// System.out.println(“儿子的无参构造”);
// }
//}
//
super 关键字 可以通过super继承父类的功能,super代表父类的一个引用对象
如果在构造方法中使用,要放在第一句
子类在创建对象时,会默认访问父类的无参构造方法 ; 当父类只定义了含参构造方法时,无参构造就会被覆盖,只能通过super调用父类的含参构造方法
//class sunzi extends son{
// int num=34;
// public sunzi() { //创建无参构造方法
// super(); //在创建新对象时,会自动调用父类的无参构造 且如果在构造方法中必须放第一行
// int b =10;
// System.out.println(super.num); //输出89 super调用父类的成员变量
// System.out.println(num);
// }
//
//
//}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值