Java面向对象强化学习(1) 类与封装继承

/*
    类,是描述相同事物的共同特征的抽象
    对象,是类的实例
    类名:首字母大写,满足驼峰写法
    一个Java文件中可以有多个类,但只能有一个公共类
    若一个类中写了有参数构造器却没有写无参数构造器 原有缺省无参构造器会被覆盖

 */
/*
    this关键字
    代表当前对象
    可以用在实例方法和构造器中
    在方法中,谁调用这个方法,this代表谁
    用在构造器中,代表构造器中初始化对象的使用
 */
/*
    封装优点:
        提高安全性
        实现组件化
    封装的规范:
        建议成员变量私有
        提供成套的getter+setter获得变量和赋值
    核心思想:合理隐藏,合理暴露
 */

/*
    static关键字
    有static修饰的变量是类变量(可以使用类名调用)
    有static修饰的成员方法是类方法(静态方法,属于类本身)
    请不要使用对象访问静态变量!
    同一个类中访问静态方法可以省略类名
 */
/*
    实例方法可以访问实例变量也可以访问静态方法变量
    静态方法可以访问静态方法和静态变量但不可访问实例方法变量

 */
/*
    继承子类继承父类可以得到父类的全部属性和方法
    java中一个子类只能有一个父类
    子类不会继承父类构造器
    子类是否可以继承父类的私有方法?不可直接访问
    子类是否可以继承父类的静态方法?子类只是可以访问父类静态方法,并不能说是继承
    父类只有有参的构造方法,子类也只能有有参的构造方法,且子类的有参构造方法必须显示调用父类的有参构造方法。
    一般使用super调用父类
    子类和父类采取就近原则 同名子类有调用子类 否则调用父类
 */
  
当父类只有有参构造函数是,子类的构造方法:
class Student extends People{
 public Student (String name)
 {
    super(name);
 }
}

class People {
    public People(String name) {
        this.name = name;
    }

    private  String name;
    private String getName(){
            return this.name;
        }
}

  子类不能直接调用父类的私有方法:

public static void main(String[] args){
   Student a = new Student("nig");
   System.out.println(Student.getName());

    }

 上图运行会报错,因为访问了父类的私有方法

  改正方法:修改getName的修饰符

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值