对于继承我有点晕,不继承的时候也能实例化来调用别的类的方法啊?为什么一定要用继承

解决方案 »

  1.   


    public class Parent {
    protected String name,sex;
    protected void introduce(){
    System.out.println("name:"+this.name+"  ------ sex:"+this.sex);
    }

    public static void main(String[] args) {
    //  都继承了 parent,拥有父类的非私有属性和方法.
    A a= new A("A","man");
    a.introduce();
    //  隐藏实例对象.
    Parent b = new B("B", "woman");
    b.introduce();
    C c = new C("C", "man");
    c.introduce();
    }
    }class A extends Parent{
    public A(String name,String sex) {
    // TODO Auto-generated constructor stub
    this.name = name;
    this.sex = sex;
    }
    }class B extends Parent{
    public B(String name,String sex) {
    // TODO Auto-generated constructor stub
    this.name = name;
    this.sex = sex;
    }
    }class C extends Parent{
    public C(String name,String sex) {
    // TODO Auto-generated constructor stub
    this.name = name;
    this.sex = sex;
    }
    }
      

  2.   

    1.继承可以有父类非私有的属性,不继承你怎么使用别人的属性是不安全的,所以在java中自己的属性,一般但是封装的。
    2.继承可以简化子类的代码
    还有很多用处。
    我觉得楼主不理解的地方是,第一点,
      

  3.   

    1.继承可以有父类非私有的属性,不继承你怎么使用别人的属性是不安全的,所以在java中自己的属性,一般但是封装的。
    2.继承可以简化子类的代码
    还有很多用处。
    我觉得楼主不理解的地方是,第一点,
      

  4.   

    Java继承是使用已存在的类的定义作为基础建立新类的技术,新类的定义可以增加新的数据或新的功能,也可以用父类的功能,但不能选择性地继承父类,主要用来扩展已有类的功能,解决类和类之间的重复代码问题,打破了类的封装性(可以通过重写来破坏父类的功能)细节如下:
    1、父类中构造方法和private修饰的内容无法被子类继承,注意:父类函数权限为private时,子类的同名函数不叫重写。
    2、父类中的私有内容不能直接访问,但可以通过提供的set/get方法获取。
    3、不要为了继承而继承,当父类中所有的成员,子类都需要的时候,可以使用继承,如果父类有一些子类不需要的成员,那么不能为了代码共享而继承。
    4、子类可以通过this或者super来调用自己或父类成员的属性、方法,所有子类的构造函数默认第一行都调用super()。
    5、java中类的继承只允许单继承。
    6、实例化对象的时候要先实例化父类对象
    7.如果父类是静态的函数,那么子类也必须使用静态的函数进行重写,否则造成函数重复,编译不通过。
    8、子类可以通过super关键字来获取父类中定义的与子类同名的成员。