继承

继承

1)作用:代码复用
2)通过extends来实现继承
3)超类/父类:派生类所共有的属性和的行为
     派生类/子类:派生类所特有的属性和行为
4)派生类继承超类后,派生类具有:派生类的+超类的
5)一个超类可以有多个派生类
     一个派生类只能继承一个超类------单一继承

​
class Person{ //--------------------------超类/父类
  String name;
  int age;
  String address;
  void eat(){}
  void sleep(){}
}
class Student extends Person{-------------派生类/子类
  String stuId;
  void study(){}
}
class Teacher extends Person{-------------派生类/子类
  double salary;
  void teach(){}
}
class Doctor extends Person{--------------派生类/子类
  String level;
  void cut(){}
}


Student zs = new Student();
zs.stuId/study();
zs.name/age/address/eat()/sleep();

Teacher ls = new Teacher();
ls.salary/teach();
ls.name/age/address/eat()/sleep();

Doctor ww = new Doctor();
ww.level/cut();
ww.name/age/address/eat()/sleep();

6)继承具有传递性

class Aoo{---------------------a
  int a;
}
class Boo extends Aoo{---------b+a
  int b;
}
class Coo extends Boo{---------c+b+a
  int c;
}

7)java规定:构造派生类之前必须先构造超类

  •     在派生类的构造中若自己没有调用超类构造,则默认super()调用超类的无参构造
  •     在派生类的构造中若自己调用了超类构造,则不再默认提供
​
public class SuperDemo {
	public static void main(String[] args) {
		Boo o = new Boo();
	}
}

class Aoo{
	Aoo(){
		System.out.println("超类构造");
	}
}
class Boo extends Aoo{
	Boo(){
		super(); //默认super()来调用超类的无参构造---必须位于第一行
		System.out.println("派生类构造");
	}
}

输出结果为:
先输出超类构造,在输出派生类构造,因为当派生类继承超类之后,如果没有继承超类的构造方法,编译器会默认继承超类构造,也就是super();

注意:super()调用超类构造方法,必须位于派生类构造方法的第一行

8)如果超类的构造有参数,派生类的super必须传参数,否则报错

public class SuperDemo {
	public static void main(String[] args) {
		Boo o = new Boo();
	}
}



class Coo{
	Coo(int a){
	}
}
class Doo extends Coo{
	Doo(){
		super(25);
	}
	
	/*
	//如下代码为默认的
	Doo(){
		super();
	}
	*/
}

super的用法:

super:指代当前对象的超类对象   

  • super.成员变量名----------访问超类的成员变量
  • super.方法名()--------------调用超类的方法
  • super()-----------------------调用超类的构造方法

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

謹言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值