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

java随手笔记二之继承

时间:2016-10-10 23:31:18      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:

继承:
extends
从一个类中创建出新类,新类---子类,原有的类---父类,超类,基类
子类继承父类,子类就拥有了父类中的内容(除构造器外),同时子类还可以拥有自己特有的内容。
一个父类可以有多个子类,一个子类只能有一个父类---java单继承。
优点:
1.创建更特殊的类型
2.消除代码的重复问题
3.便于可维护性和提高扩展性
子类继承父类,包括私有成员,但是在子类中不能直接访问继承的私有成员,必须通过公共访问方式。
 
方法覆盖/重写:
在子类中,出现了和父类相同的方法,但是方法体内容不同,建立子类对象,调用该方法,运行的是子类的内容。
注意方法重写和方法重载的区别方法重载和父类无关,同名方法 参数列表不同。
要求:
1.必须有子父类
2.子类重写方法时,访问控制修饰符必须大于等于父类
3.方法签名必须一致
jdk5.0 子类重写方法的返回值类型可以是父类该方法返回值类型的子类类型
4.被重写方法不应是private
super:代表父类对象的引用
this:代表当前类对象的引用
调用父类构造器:
在子类构造器的第一行有一条隐式的super()语句。
该语句的作用:
1.调用父类无参数的构造器
2.用来初始化子类继承的属性
3.如果子类构造器第一行不是this(...)或者super(...)
 
注意:this(...)或者super(...)在构造器中只能出现一次,并且在构造器的第一行。
class test
{
public static void main(String[] args)
{
PC p = new PC("red");
System.out.println(p.color);
System.out.println(p.getDetails());
System.out.println(p.say());
System.out.println(p.getDetails());
}
}
 
class Computer
{
private String cpu;
int memory;
int hardDisk;
public String getDetails(){
return memory+" "+hardDisk;
}
public Computer(String cpu,int memory,int hardDisk){
this.cpu = cpu;
this.memory = memory;
this.hardDisk = hardDisk;
}
public Computer(String cpu){
this("i5",4,250);
}
 
String say(){
return cpu+" "+memory+" "+hardDisk;
}
}
 
class PC extends Computer
{
String color;
public PC(String cpu,String color){
super(cpu);
this.color = color;
}
 
public PC(String color){
this("i7",color);
}
 
@Override
public String getDetails(){
return color+" "+ say();
}
}
class Notepad extends Computer
{
int size;
public Notepad(String cpu,int size){
super(cpu);
size = 14;
}
 
public int getSize(){
return size;
}
}
UML:称为统一建模语言,用图形符号表示面向对象元素的图形化语言。
类图:用一个矩形来表示。
第一部分:类名框
第二部分:属性框
权限修饰符 属性名 : 数据类型
第三部分:方法框
权限修饰符 方法名 : 返回值类型
权限修饰符:
public : +
protected : #
default :~或空
private : -
 

java随手笔记二之继承

标签:

原文地址:http://www.cnblogs.com/cnblogs1/p/5947343.html

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