继承

继承

is-a

子类获得父类除构造方法外的所有东西(属性和方法或者重新定义、追加属性和方法等。)
作用:实现代码复用

//基本语法
class 子类 extends 父类 {   
}

父类又称基类,超类
子类又称派生类
子类拥有父类的特征,而父类没有,父类更通用,子类更具体,(特征包括属性和方法,自身的特性,拥有父类没有的)
基类只能访问自己的成员/方法,子类可以访问基类的,因为它继承了基类
java是单继承,只能继承一个类
父类中public,protected修饰的属性,方法可以继承,private修饰的属性和方法不能被继承
如果父类的属性均为private修饰,则可以通过共有的getter,setter方法来调用

class Animal {//父类
    private String name;
    private String sex;

    public Animal(String name, String sex) {
        this.name = name;
        this.sex = sex;
    }
    public void eat(String food) {
        System.out.println("eat");
    }

    @Override
    public String toString() {
        return "Animal{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }
}
class Cat extends Animal {
    public int age;
//Cat继承Animal类后,Cat在定义时就不用在写name,sex字段和eat方法
    public Cat(String name,String sex){
    //使用 super 调用父类的构造方法
        super(name,sex);
    }

    public Cat(String name, String sex, int age) {
        super(name, sex);
        this.age = age;
    }

    public void mie() {
        System.out.println("mie");
    }

}

super关键字

在Java类中使用super来调用父类中的指定操作:
1、super可用于访问父类中定义的属性
2、super可用于调用父类中定义的成员方法
3、super可用于在子类构造器中调用父类的构造器

  • 子类中所有的构造器默认都会访问父类中空参数的构造器
  • 父类中没有空参数的构造器时, 子类的构造器必须通过this(参数列表)或者super(参数列表)语句指定调用本类或者父类中相应的 构造器。 同时, 只能”二选一”, 且必须放在构造器的首行。
  • 如果子类构造器中既未显式调用父类或本类的构造器, 且父类中又 没有无参的构造器, 则编译出错。

关于public、private、default、protected修饰字段和方法的权限的比较

public,公共的,即类内部和类的调用者都能访问
private,私有的,只能在类内部访问
protect,保护的,类内部、子类、同一个包的类可以访问,其他的不行
default,默认的,也叫包访问权限,同一个包的类可以访问,其他的类不能访问
在这里插入图片描述在这里插入图片描述

组合:也可以实现代码的复用性
has-a

public class Student {     ... } 
 
public class Teacher {     ... } 
 
public class School {   
 我们可以理解成一个学校中 "包含" 若干学生和教师  
	public Student[] students;     
	public Teacher[] teachers; 
}

final关键字

1、final可以修饰成员变量、方法、属性、类
2、修饰类时不能被继承
3、修饰方法时不能被子类的方法重写
3、修饰局部变量
final int a=10;//修饰普通局部变量,放在栈上 a=10;//报错,不可重新赋值
public static final int SIZE=10;//静态的常量,属于类本身,只有一份,不可更改
4、修饰引用类型变量只能保证其地址不会改变,

代码块的打印顺序
在这里插入图片描述
在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值