2. 继承 子类的重写

 

1.子类通过extends关键字继承父类

2.子类可以继承父类 非私有 属性

3.创建子类对象时,会默认调用父类的无参构造方法

4.在子类构造方法中,第一行默认有super();语句,该语句用于调用父类构造方法

5.使用super(值);调用父类中其他重载的构造方法

super关键字:

1.表示父类对象

2.使用super.属性访问父类中的属性

3.当子类中声明了和父类中同名的属性。使用super来区别

父类Animal类

//父类
public class Animal {
    //父类里的属性,如果是被用来被子类继承,就不要使用private修饰
    String name="动物";
    String color;
    int age;
    double weight;

    //无参构造方法
    public Animal(){

    }

    public Animal(String name){
        System.out.println("父类有参构造方法");
    }

    public void eat(){
        System.out.println("eat");//父类的行为(成员方法)
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

子类Cat类

public class Cat extends Animal{
    String name="猫";
    //子类无参构造方法
    public Cat(){
        super();//默认有这一句话 调用父类构造方法
        System.out.println("子类无参构造方法");//子类无参构造方法
    }

    public void test(){
        System.out.println("访问当前类name:"+this.name);//访问当前类name:猫
        System.out.println("访问父类中name:"+super.name);//访问父类中name:动物
        //访问父类中的方法
        super.eat();//eat
    }

    public static void main(String[] args) {
        //创建Cat类对象
        Cat c=new Cat();
        c.test();
        //c.weight=10;编译错误,无法继承父类私有属性
    }
}
 

重写:

1.在子类里声明一个和父类相同的方法,并且可以重新定义方法体

2.子类会调用重写之后的方法,如果要调用父类中的方法,使用super.方法名();

父类Phone类

//手机类
public class Phone {
    public void call(){
        System.out.println("打电话");
    }
}

子类SmartPhone类

public class SmartPhone extends Phone {
    //重写父类call方法
    @Override//该注解表示该方法是重写父类的方法,建议加上
    public void call(){
        super.call();//调用父类中的call方法打电话// 打电话
        System.out.println("打视频电话");//        打视频电话
    }

    public static void main(String[] args) {
        //创建子类对象
        SmartPhone sp=new SmartPhone();
        sp.call();
    }
}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值