一、继承
特点:
子类继承父类中的所有属性和方法,但是父类中私有的属性以及方法不能被子类继承(私有属性只能在当前类使用,其他类无法使用)构造方法也无法被继承;子类可以拥有自己的属性和功能;一个父类可有多个子类、但是一个子类只能有一个父类。
作用:
提高代码的重用性
关键字extends:
语法: [访问修饰符] class 子类 extends 父类{}
public class jicheng {
public static void main(String[] args) {
S1 s=new S1();//创建子类的对象
s.t1();
}
}
class F1{
private String name="搓麻将";//被private修饰过的私有属性无法被继承
private int age=19;
String hourse="30栋大别墅";
int car=50;
int money=999999;
public void display(){//在父类中创建一个display方法
System.out.println("---------------这是父类中的方法-------------");
}
}
class S1 extends F1{
public void t1(){
System.out.println("从父类继承过来的 "+hourse);
System.out.println("从父类继承过来的 "+car+"辆AMG GT");
System.out.println("从父类继承过来的 "+money+"美金");
super.display();
}
}
二、super关键字
在创建有继承关系的子类对象时,一定会先执行父类中的构造方法(默认执行的无参数的构造方 法),然后再执行子类的构造方法。 如果在创建子类对象时,父类中不存在默认的构造方法,则程序编译错误。
super关键字:
super关键字使用的场景:
super关键字只能出现在有继承关系的子类中
super关键字的作用:
表示对当前类父类对象的引用(白话:就是可以把super当作父类对象来使用) 可以使用super关键字,来显示的说明子类中的某个属性或方法是在父类中定义的,
super关键字 的用法:
属性:super.属性名
方法:super.方法名(参数列表)
构造方法:只有super以super(参数列表)的形式出现在子类构造方法的第一句代码时,就表示 明确了所要使用的父类构造方法
public class Demo1{
public static void main(String[]args){
//创建子类对象
S1 s1=new S1();
s1.t1();
}
}
//父类
class F1{
private String name="zhangsan";
private int age=99;
String hourse="5套房子";
String car="10辆宝马";
String money="9999999999999999999999$";
public F1(String name){
System.out.println("**********父类中的构造方法**********");
}
public void display(){
System.out.println("---------父类中的方法--------------");
}
}
//子类
class S1 extends F1{
public S1(){
super("zhangsan");
System.out.println("***********子类中的构造方法*********");
}
public void t1(){
System.out.println("从父类中继承的房子有:"+super.hourse);
System.out.println("从父类中继承的车子有:"+super.car);
System.out.println("从父类中继承的存款有:"+super.money);
//System.out.println(name+" "+age);//私有的子类无法被继承
super.display();//调用父类中的方法
}
}