1.继承
1)复用:开发只需要定义独有的功能(属性和方法),再复用曾经写过的功能(属性和方法)
2)extends:继承的关键字
格式:class 子类 extends 父类
3)子类可以继承父类的属性和方法
4)继承本质:把父类的属性和方法代码拷贝到子类中,在写子类代码时候,可以减少代码量,只需要添加新的部分
5)java中继承是单继承,但可以层层继承
单继承:子类只能有一个直接父类
案例:
public class Demo2 {
public static void main(String[] args){
Bmw bmw = new Bmw();
bmw.name = "haha";
bmw.color = "red";
bmw.no = "w5";
bmw.speed = 268.50;
bmw.start();
System.out.println(bmw.name "." bmw.color "." bmw.no "."
bmw.speed);
}
}
class Car{
String name;
String color;
String no;
void start(){
System.out.println("启动");
}
void run(){
System.out.println("奔跑在路上。。。");
}
void stop(){
System.out.println("请注意刹车了!!");
}
}
class Bmw extends Car{
double speed;
}
class Benz extends Car{
double price;
}
2.继承中的构造方法使用:
1)子类不能继承父类的构造方法,子类会默认的调用父类的构造方法
2)父类中有空参的构造方法,子类可以任意设计自己的构造方法
案例:
public class Demo3 {
//父类中含有空参的构造方法,则子类可以任意设计自己的构造方法
public static void main(String[] args){
Emp2 emp2 = new Emp2("吕布",34);
System.out.println(emp2.name "." emp2.age);
}
}
class Emp1{
String name;
int age;
//默认系统提供空参的构造方法
void show(){
System.out.println(name age);
}
}
class Emp2 extends Emp1{
double salay;
Emp2(String name, int age, double salary){
this.name = name;
this.age = age;
this.salay = salary;
}
Emp2(String name, int age){
this.name = name;
this.age = age;
}
}
3)父类中没有空参的构造方法,则子类的构造方法必须要调用父类中带参数的构造方法
super:过去的,曾经的
super(参数):写在子类构造方法的第1行,调用父类中的构造方法。
案例:
public class Demo4 {
}
class User1{
String name;
String password;
User1(String name, String password){
this.name = name;
this.password = password;
}
}
//父类只有带参数的构造方法的时候,子类就会默认的去调用父类的构造方法
//利用super来调用父类的构造方法
class User2 extends User1{
int age;
User2(String name, String password, int age){
//super(参数 ):根据参数去调用父类中的构造方法,而且super必须写在第1行
super(name,password);
this.age = age;
}
}