java java面向对象-子类继承父类的哪些成员

20180312 java java面向对象-子类继承父类的哪些成员

先写父类还是先写子类?
答:不一定,一般地,我们在实际开发工程时,先编写多个自定义的类,写完之后,发现多个类之间存在共同的代码,此时可以抽出一个父类;我们以后做开发,都是基于框架/组件来做的,我们是在别人的基础上继续做开发,即我们定义的类会继承于框架中/组件中提供的父类。


子类继承自父类后,子类可以拥有父类的某一些状态和行为,即子类复用了父类的某些功能和状态。可以通过访问修饰符判断子类继承了父类的哪些功能和状态:
1、若父类中的成员(字段或方法)是以public修饰的,则子类无条件全继承;
2、若父类中的成员(字段或方法)是以protected修饰的,则子类也全继承,即使子类与父类不在同一个包中;
3、若父类和子类在同一个包中,此时子类可以继承父类中缺省修饰的成员。
eg:
//普通的人
class Person extends Object{
  String name;
  int age;
  publi void sleep(){   }



//学生
class Student extends Person{
  String sn;//学号
}


//引出继承关系
public class ExtendsDemo{
  public static void main(String[] args){
    Student s = new Student();
    System.out.println(s.sn);
    System.out.println(s.name);
    s.sleep();
    
  }
}


4、若父类中的成员(字段或方法)是以private修饰的,则子类无法继承父类的任何成员,因为private修饰的成员只能在本类中访问;      
5、父类中的构造器,子类也无法继承,因为构造器必须和当前的类名相同。

你可能感兴趣的:(java课程)