java继承


   *继承
   * 1.类与类之间产生关系,子类可以直接使用父类中的非私有成员,继承私有成员,但不能使用。
   * 2.优点:提高了代码的复用性,维护性
   * 3.缺点:降低了代码的灵活性,增强了耦合性
   * 4.java支持单继承,多层继承,不支持多继承
   * 5.子父类当中,出现了重名成员变量,就近原则,使用父类的成员变量,利用super()关键字
   * 6.方法重写:
   * 当子类需要父类的功能,而子类有自己的内容时(方法名,参数列表,返回值类型相同)
   * 父类私有方法不能被重写
   * 父类静态方法,子类必须静态方法进行重写,父类非静态方法,子类必须通过非静态方法进行重写(静态方法不能被重写,子类将父类中重名方法隐藏了起来)
   * 子类重写方法时,访问权限必须大于父类
   * 7.继承中构造方法的访问特点:
   * 每一个构造方法的第一条语句默认都是:super();
   * 子类初始化之前一定先完成父类的初始化,完成父类数据的初始化,通过系统在每一个构造方法中,隐藏的super()执行父类的空参构造方法,完成父类的初始化
   * */
   *
public class Person {
    private int age;
    private  String name;
    private  String number;
    public  void print(){
        System.out.println("子类继承父类的非私有成员");
    }
}
public class test extends Person {
    /*
    *继承
    * 1.类与类之间产生关系,子类可以直接使用父类中的非私有成员
    * 2.优点:提高了代码的复用性,维护性
    * 3.缺点:降低了代码的灵活性,增强了耦合性
    * 4.java支持单继承,多层继承,不支持多继承
    * 5.子父类当中,出现了重名成员变量,就近原则,使用父类的成员变量,利用super()关键字
    *6.方法重写:
    * 当子类需要父类的功能,而子类有自己的内容时(方法名,参数列表,返回值类型相同)
    * 父类私有方法不能被重写
    * 父类静态方法,子类必须静态方法进行重写,父类非静态方法,子类必须通过非静态方法进行重写(静态方法不能被重写,子类将父类中重名方法隐藏了起来)
    * 子类重写方法时,访问权限必须大于父类
    *
    * */}
public class test1 extends test {
    public void print1(){
        System.out.println("多层继承");
    }
}
public class TestExends {
    public static void main(String[] args) {
        test t = new test();
        t.print();
        test1 t1  = new test1();
        t1.print1();
        t1.print();
    }
}
public class Zi extends Fu{
    int a = 20;
    public void  method() {
        int a = 30;
        System.out.println(a);
//        打印本类中的成员变量
        System.out.println(this.a);
//        在控制台打印父类成员变量
        System.out.println(super.a);
    }
}
public class Test {
    public static void main (String[] args){
        Zi z = new Zi();
        z.method();
    }
}
//方法重写
public class ipearV1 {
   void call(String name){
        System.out.println("给"+name+"打电话");
    }
    public void smallBlack(){
        System.out.println("speak english");
    }
}
public class ipearV2 extends ipearV1{
    public void smallBlack(){
        super.smallBlack();
        System.out.println("说中文");
    }
}
// 手动通过super()访问父类有参构造方法
class Fa{
    int age;
    public Fa(int age){
        this.age = age;
        System.out.println("父类带参数构造方法访问");
    }
}

class Son extends Fa{
    public Son(int age){
        super(age);
        System.out.println("子类带参数构造方法访问");
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值