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

关于java继承、多态、抽象类、接口等性质的学习(1)

时间:2015-10-13 13:45:59      阅读:124      评论:0      收藏:0      [点我收藏+]

标签:

最近几日把JAVA编程思想翻了翻,顿时发现以前看的所谓XXX从入门到精通系列讲的简直不能看,只能是当做入门中的入门书吧。

为了日后不会忘记,把一些想法写下来。

 

关于继承和多态

我想继承是面向对象语言不可少的一部分吧,引用JAVA编程思想的一句话:“当创建一个类时,总是在继承”。继承通过extends关键字实现,继承实现后,基类中所有的域和方法都可以得到。

class First{
    private String s = "extend";
    First(){
        
    }
    public void two(){
        System.out.println("1");
    }
    public void three(){
        System.out.println("2");
    }
}

public class ExtendsDemo extends First{
    
    ExtendsDemo(){
        
    }
    /*public void two() {
        System.out.println("3");
    }

    public void three() {
        System.out.println("4");
    }*/
    public static void main(String[] args){
        ExtendsDemo d = new ExtendsDemo();
        First f = new First();
        d.two();
        d.three();
        f.two();
        f.three();
    }
    
    }

 

当子类方法覆盖父类方法时,此时子类对象调用的为子类的方法,而在子类中创建的父类对象调用的仍为父类的方法。若子类方法没有覆盖父类方法时,则子类对象和父类对象调用的统一为父类的方法。

另外有一点,父类的私有域,在子类是不能访问的。

 

在多重继承的情况下,构造器的调用时由上往下进行的,因而基类在其导出类构造器能够访问它之前就已经完成了初始化。

class First{
    public First() {  //基类
        System.out.println("First()");
    }
}

class Second extends First{

    public Second() {   
        System.out.println("Second()");
    }
    
}
class Apple{
    public Apple() {
        System.out.println("Apple()");
    }
}
class Banana{
    public Banana() {
        System.out.println("Banana()");
    }
}
public class Test1 extends Second{
    private Apple a = new Apple();
    private Banana b = new Banana();
   public Test1() {
       System.out.println("Test1()");
}
   public static void main(String[] args){
       Test1 t = new Test1();
   }
}

 

上面的输出分别是

First()
Second()
Apple()
Banana()
Test1()

也就是说构造器的调用顺序先从基类开始依次往下,然后按声明顺序调用成员的初始化方法,最后调用导出类构造器的主体(构造方法)。

 

ps:博主刚开始接触java不久,正在学习中,可能很多地方的理解还是有问题的,希望众博友勿喷。

关于java继承、多态、抽象类、接口等性质的学习(1)

标签:

原文地址:http://www.cnblogs.com/crispker/p/4874259.html

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