JAVA之继承性

目录

1.继承的概念与格式

2.继承的内容及限制

3.继承中的访问权限修饰符

4.子类/父类方法相关问题

5.this关键字


1.继承的概念与格式

继承是面向对象最显著的一个特性。继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性和行为,并能扩展新的能力。

一般格式写作:

public class 子类名 extends 父类名 {

    // 属性

    // 方法

}

2.继承的内容及限制

  • 子类可以继承到父类的哪些内容?

—所有的

  • 子类以及子类的对象可以调用到继承的哪些属性和方法?

—属性、方法以及其他代码的访问权限修饰符

3.继承中的访问权限修饰符

  • public: 即公有,整个项目下可以调用
  • protected: 即受保护,同包下 / 其子类中可以调用
  • private: 即私有,本类中可以调用/ 子类就不能直接调用
  • 省略:默认同包中可以调用
//父类Student
package tzh0414;
public class Student {
    public String name;
    private int age;
    protected String stu_id;
    int score;

}

//子类UNstudent
package tzh0414;
public class UNstudent extends Student{

    public void printInfo(){
        System.out.println ("name: " + name);
        //System.out.println ("age: " + age);  //由于父类中age是private修饰,故此处无法调用
        System.out.println ("stu_id: " + stu_id);
        System.out.println ("score: " + score);
    }
//父类Student在包tzh0414中
package tzh0414;
public class Student {
    public String name;
    private int age;
    protected String stu_id;
    int score;

}


//子类Postgraduate在包tzh04141中
package tzh04141;
import tzh0414.Student;
public class Postgraduate extends Student {
    public void printInfo(){
        System.out.println ("name: " + name);
       //System.out.println ("age: " + age);  //由于age在父类中是private修饰,只能在本类中调用
        System.out.println ("stu_id: " + stu_id);
       //System.out.println ("score: " + score); //由于score在父类中是省略情况,故只能同包调用
    }
}

4.子类/父类方法相关问题

  • 构造方法

  - 在创建子类对象同时也会直接调用父类的构造方法

//父类的构造方法
public Student(String name, int age, String stu_id, int score) {
        this.name = name;
        this.age = age;
        this.stu_id = stu_id;
        this.score = score;
    }  

//子类的构造方法
public UNStudent(String name, int age, String stu_id, int score,int cet_4){
        // 子类调用父类的构造方法
        // super 关键字在子类中替代父类
        super (name, age, stu_id, score);
        this.cet_4 = cet_4;// 子类独有的属性赋值
    }
  • 方法重写

  - 子类中可以重写父类的方法

  - 格式要求是 与父类方法结构一致

  - 子类以及子类对象优先调用子类重写之后的方法

//父类
public class Student{
//父类中的方法
    public void printInfo(){
        System.out.println ("name: " + name);
        System.out.println ("age: " + age);
        System.out.println ("stu_id: " + stu_id);
        System.out.println ("score: " + score);
    }

}

//子类
public class UNStudent extends Student {
//子类中重写父类的方法
    public void printInfo(){
        // 用super 来替代父类调用方法
        super.printInfo ();
        // 在父类方法的基础上 再增加子类的方法内容
        System.out.println ("cet_4:" + cet_4);

}

5.this关键字​​​​​​​

  • 在每个类中指代本类的对象
  • this(); 本类的构造方法调用
  • this.方法名(); 表示调用本类的方法 以及本类继承的方法都可以调用
  • this.属性名 表示 这个属性是当前类的属性 可以与 参数等一些变量做区分
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值