java继承
2017-06-29 00:00
148 查看
1:java继承就是子类拥有父类的一切(感觉就是为了偷懒),子类还可以扩大父类的权限
2:子类重写父类的时候,子类权限>=父类,静态只能覆盖静态,
子类第一行有隐试super()访问父类中默认的构造方法,构造方法至少有一个会去访问父类
父类中数据子类可以直接获取,对象在建立的时候,会先查看父类是如何初始化的,再初始化子类的构造方法
属性只能被继承,不能被重写,因为属性是在编译阶段就被确定好了的
3:重载只看同名函数的参数列表(类型,顺序,个数),重写的返回类型方法名参数列表要一样,就方法主体不一样
2:子类重写父类的时候,子类权限>=父类,静态只能覆盖静态,
子类第一行有隐试super()访问父类中默认的构造方法,构造方法至少有一个会去访问父类
父类中数据子类可以直接获取,对象在建立的时候,会先查看父类是如何初始化的,再初始化子类的构造方法
属性只能被继承,不能被重写,因为属性是在编译阶段就被确定好了的
3:重载只看同名函数的参数列表(类型,顺序,个数),重写的返回类型方法名参数列表要一样,就方法主体不一样
package extendsDemo; public class Animal { String name = "Animal"; public Animal() { System.out.println("animal constr"); } public Animal(String name) { System.out.println(name + "animal constr"); } public void move() { System.out.println("animal move"); } public void run() { this.move();//执行的是子类的move方法,this指当前对象 } //可以写成move();这个是默认的this //都是先在子类里面找,找不到就父类里面找 public void eat() { System.out.println("eat " + name); }/*即使改成this。name,输出也是eat dog,因为属性只能被继承*/ }
package extendsDemo; public class Dog extends Animal { String name = "dog"; public Dog() { /*super(name);错误的--子类还没创建就传就给了父类,这句话 相当于把子类当前对象name传给了父类,就是在创建你父亲时 就把你儿子东西给了他,可以换成super(xxx)。 因为这个不是当前对象的全局变量*/ System.out.println("dog constr"); } public void move() { System.out.println("dog move " + super.name); }//可以在子类使用super来访问父类,就是要使用父类的name //如果想再子类调用eat方法,直接在方法主体加上eat() public void move(String name) { System.out.println("dog move"); } }
package extendsDemo; public class TestDog { public static void main(String[] args) { Dog dog = new Dog(); dog.run(); dog.eat(); } }
相关文章推荐
- 转:澄清Java----接口与继承
- 在JAVA中阻止类的继承(官方和非官方)
- Eclipse快速上手Hibernate--4. 继承映射(1)(摘自javamxj的blog)
- Java 中子类是否只继承父类的非私有变量和方法?
- 通过实验看 Java 中私有成员是否能被继承
- 通过实验看 Java 中私有成员是否能被继承
- Eclipse快速上手Hibernate--4. 继承映射(2)(摘自javamxj的blog)
- Java 继承时的隐藏
- JAVA如何利用接口制造类似于C++的多继承
- 澄清Java(一)----接口与继承
- Java类继承中的构造函数问题
- 在Java中使用继承
- 为什么Java中继承是有害的
- JAVA中几个易混淆关键词的理解:行为,隐藏,组合和继承,覆写和重载,多形(多态)性,动态绑定,上溯造型,抽象类,接口
- JAVA 的interface观念 与C++ 多重继承的比较
- 在JAVA中阻止类的继承
- 为什么Java中继承是有害的
- Eclipse快速上手Hibernate--4. 继承映射(3)(摘自javamxj的blog)
- Java 中子类是否只继承父类的非私有变量和方法?
- 澄清Java语言接口与继承的本质