码迷,mamicode.com
首页 > 编程语言 > 详细

java之继承

时间:2020-06-18 16:15:12      阅读:42      评论:0      收藏:0      [点我收藏+]

标签:code   col   ati   方法   public   name   set   语句   隐式   

1、子类直接继承父类

class Person1{
    private String name;
    private int age;
    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return this.name;
    }
    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return this.age;
    }
}

class Student extends Person1{

}
public class Per_StuDemo {
    public static void main(String[] args) {
        Student stu = new Student();
        stu.setName("zhangsan");
        stu.setAge(16);
        System.out.println("name:"+stu.getName()+",age:"+stu.getAge());
    }
}

2、只允许多层继承,而不能多重继承

对私有操作隐式继承,对公有操作显式继承。子类可以调用父类中的非私有方法(getter、setter),但是不能直接调用父类中的私有成员(直接访问)。

在子类对象构造之前一定会默认调用父类的无参构造(默认使用无参构造)以保证先实例化父类对象,而后实例化子类对象。

class A{
    public A(){
        System.out.println("A");
    }
}

class B extends A{
    public B(){
        System.out.println("B");
    }
}
public class ExtendsDemo1 {
    public static void main(String[] args) {
        new B();
    }
}

输出结果:

A
B

3、super()和this()不能同时出现,

子类对象的构造调用之前,一定要先执行父类构造,为父类对象初始化后才轮到子类对象初始化。

super()加不加此语句效果相同,且必须加在的第一行。

class A{
    public A(){
        System.out.println("A");
    }
}

class B extends A{
    public B(){
        super();
        System.out.println("B");
    }
}
public class ExtendsDemo1 {
    public static void main(String[] args) {
        new B();
    }
}

 

java之继承

标签:code   col   ati   方法   public   name   set   语句   隐式   

原文地址:https://www.cnblogs.com/cathycheng/p/13157712.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!