面向对象特征—继承

子 继承 父 ,子类中拥有父亲中的功能,儿子不需要重复定义 重复的做一些事情

为什么要继承?实现代码的重用

基类—>派生出—>新的类

在JAVA中使用extends关键字来表示继承关系, 同一类的事务,都可以使用继承关系来实现设计。

人类(基类/父类 把人共有的属性和行为定义在基类中,让其他类去继承即可)

学生 姓名,性别,年龄 吃东西(){ }

老师 姓名,性别,年龄 吃东西(){ }

工人 姓名,性别,年龄 吃东西(){ }

....

代码复用,子继承父之后,共有的定义在父类中,子类不用定义也可以访问到父类中的功能

代码扩展,在自己类中扩展自己特有的功能,不影响别的类

继承的形式: 访问权限修饰符 子类名 extends 父类名{子类体}

package demo1;
/*
    基类/父类  定义本类型中共有的属性和行为
    当一个类没有使用extends继承其他类时,这个默认继承Object类,Object类是java中所有类的基类(父类)
 */
public class Animal extends  Object{

    private String name;
    private int age;

    public void eat(){
        System.out.println("动物吃东西");
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
}
package demo1;
/*
  子类  extends 继承父类
  拥父类中的行为和属性,  但是不能直接对父类中的私有成员进行访问
 */
public class Dog  extends Animal{
     public void play(){
          System.out.println("狗会玩耍");//狗会玩是狗类自己特有的功能
     }
}

狗会玩,是狗类自己特有的功能

子类 extends 继承父类, 拥父类中的行为和属性, 但是不能直接对父类中的私有成员进行访问

虽然父类的属性是私有的,子类不能直接访问,但是可以通过公共的set get方法进行访问

package com.ffyc.javaoop.day3.demo1;
public class Test1 {
    public static void main(String[] args) {
      Dog dog =  new  Dog();
          dog.setName("旺财");
          dog.setAge(3);
          dog.eat();//eat()是在父类(Animal类中定义的功能)  代码复用
          //dog.name="";子类不能访问父类中私有的
    }
}

哮天犬 继承 Dog,Dog 继承 Animal,哮天犬会拥有Dog类和Animal类的属性和方法

继承中的传递 多层继承 ,但是不允许一个类直接继承多个类

继承的传递性 :C类从B类继承,B类又从A类继承,那么C类就具有B类和A类的所有非私有属性和非私有方法。

当一个没有继承任何一个类时,jvm会默认让类继承Object类 ,Object是 java为所有类提供的基类

package demo1;
public class XiaoTianQuan extends Dog{
    public void fly(){
        System.out.println("哮天犬会飞");
    }
}
public class Test2{ 
    public static void main(String[] args) {
		XiaoTianQuan xtq =  new XiaoTianQuan();
            xtq.setName("哮天犬");
            xtq.setAge(500);
            xtq.eat();
            xtq.play();

            xtq.fly();//自己的扩展功能
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值